import java.util.Arrays; import java.util.Scanner; public class Notifications2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int messagesNumber = Integer.parseInt(scanner.nextLine()); readAndProcessMessage(scanner, messagesNumber); } private static void showSuccessMessage(String operation, String message, StringBuilder stringBuilder) { operation = String.format("Successfully executed %s.", operation); char[] row = new char[operation.length()]; Arrays.fill(row, '='); message = String.format("%s.", message); String result = String.format("%s%n%s%n%s%n%n", operation, String.valueOf(row), message); stringBuilder.append(result); } private static void showWarningMessage(String message, StringBuilder stringBuilder) { message = String.format("Warning: %s.", message); char[] row = new char[message.length()]; Arrays.fill(row, '='); String result = String.format("%s%n%s%n%n", message, String.valueOf(row)); stringBuilder.append(result); } private static void showErrorMessage(String operation, String message, int errorCode, StringBuilder stringBuilder) { operation = String.format("Failed to execute %s.", operation); char[] row = new char[operation.length()]; Arrays.fill(row, '='); message = String.format("Reason: %s.", message); String code = String.format("Error code: %d.", errorCode); String result = String.format("%s%n%s%n%s%n%s%n%n", operation, String.valueOf(row), message, code); stringBuilder.append(result); } private static void readAndProcessMessage(Scanner scanner, int messagesNumber) { StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < messagesNumber; i++) { String messageType = scanner.nextLine(); switch (messageType) { case "success": String operation = scanner.nextLine(); String message = scanner.nextLine(); showSuccessMessage(operation, message, stringBuilder); break; case "warning": message = scanner.nextLine(); showWarningMessage(message, stringBuilder); break; case "error": operation = scanner.nextLine(); message = scanner.nextLine(); int errorCode = Integer.parseInt(scanner.nextLine()); showErrorMessage(operation, message, errorCode, stringBuilder); break; default: break; } } System.out.print(stringBuilder); } }