diff options
Diffstat (limited to 'support/arara/source/src/main/java/com/github/cereda/arara/utils/DisplayUtils.java')
-rw-r--r-- | support/arara/source/src/main/java/com/github/cereda/arara/utils/DisplayUtils.java | 502 |
1 files changed, 0 insertions, 502 deletions
diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/DisplayUtils.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/DisplayUtils.java deleted file mode 100644 index 75cda6f99a..0000000000 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/DisplayUtils.java +++ /dev/null @@ -1,502 +0,0 @@ -/** - * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * 3. Neither the name of the project's author nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY - * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -package com.github.cereda.arara.utils; - -import com.github.cereda.arara.controller.ConfigurationController; -import com.github.cereda.arara.controller.LanguageController; -import com.github.cereda.arara.model.AraraException; -import com.github.cereda.arara.model.Conditional; -import com.github.cereda.arara.model.Messages; -import com.github.cereda.arara.model.StopWatch; -import java.io.File; -import java.util.List; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.WordUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Implements display utilitary methods. - * @author Paulo Roberto Massa Cereda - * @version 4.0 - * @since 4.0 - */ -public class DisplayUtils { - - // the application messages obtained from the - // language controller - private static final LanguageController messages = - LanguageController.getInstance(); - - // get the logger context from a factory - private static final Logger logger = - LoggerFactory.getLogger(DisplayUtils.class); - - /** - * Displays the short version of the current entry in the terminal. - * @param name Rule name. - * @param task Task name. - */ - private static void buildShortEntry(String name, String task) { - int width = getWidth(); - int result = getLongestMatch(); - if (result >= width) { - result = 10; - } - int space = width - result - 1; - StringBuilder entry = new StringBuilder(); - entry.append("(").append(name).append(") "); - entry.append(task).append(" "); - String line = StringUtils.abbreviate(entry.toString(), space - 4); - entry = new StringBuilder(); - entry.append(StringUtils.rightPad(line, space, ".")).append(" "); - System.out.print(entry); - } - - /** - * Displays the short version of the current entry result in the terminal. - * @param value The boolean value to be displayed. - */ - private static void buildShortResult(boolean value) { - int result = getLongestMatch(); - System.out.println(StringUtils.leftPad(getResult(value), result)); - } - - /** - * Displays the current entry result in the terminal. - * @param value The boolean value to be displayed. - */ - public static void printEntryResult(boolean value) { - ConfigurationController.getInstance().put("display.line", false); - ConfigurationController.getInstance().put("display.result", true); - ConfigurationController.getInstance() - .put("execution.status", value ? 0 : 1); - logger.info( - messages.getMessage( - Messages.LOG_INFO_TASK_RESULT - ).concat(" ").concat(getResult(value)) - ); - if (!isDryRunMode()) { - if (!isVerboseMode()) { - buildShortResult(value); - } else { - buildLongResult(value); - } - } - } - - /** - * Displays a long version of the current entry result in the terminal. - * @param value The boolean value to be displayed - */ - private static void buildLongResult(boolean value) { - int width = getWidth(); - System.out.println("\n".concat(StringUtils.leftPad( - " ".concat(getResult(value)), width, "-" - ))); - } - - /** - * Displays the current entry in the terminal. - * @param name The rule name. - * @param task The task name. - */ - public static void printEntry(String name, String task) { - logger.info( - messages.getMessage( - Messages.LOG_INFO_INTERPRET_TASK, - task, - name - ) - ); - ConfigurationController.getInstance().put("display.line", true); - ConfigurationController.getInstance().put("display.result", false); - if (!isDryRunMode()) { - if (!isVerboseMode()) { - buildShortEntry(name, task); - } else { - buildLongEntry(name, task); - } - } else { - buildDryRunEntry(name, task); - } - } - - /** - * Gets the length of the longest result match. - * @return An integer value representing the longest result match. - */ - private static int getLongestMatch() { - String[] values = new String[]{ - messages.getMessage(Messages.INFO_LABEL_ON_SUCCESS), - messages.getMessage(Messages.INFO_LABEL_ON_FAILURE), - messages.getMessage(Messages.INFO_LABEL_ON_ERROR) - }; - int max = values[0].length(); - for (String value : values) { - if (max < value.length()) { - max = value.length(); - } - } - return max; - } - - /** - * Displays a long version of the current entry in the terminal. - * @param name Rule name. - * @param task Task name. - */ - private static void buildLongEntry(String name, String task) { - if (ConfigurationController.getInstance().contains("display.rolling")) { - addNewLine(); - } else { - ConfigurationController.getInstance().put("display.rolling", true); - } - StringBuilder line = new StringBuilder(); - line.append("(").append(name).append(") "); - line.append(task); - System.out.println(displaySeparator()); - System.out.println(StringUtils.abbreviate(line.toString(), getWidth())); - System.out.println(displaySeparator()); - } - - /** - * Displays a dry-run version of the current entry in the terminal. - * @param name The rule name. - * @param task The task name. - */ - private static void buildDryRunEntry(String name, String task) { - if (ConfigurationController.getInstance().contains("display.rolling")) { - addNewLine(); - } else { - ConfigurationController.getInstance().put("display.rolling", true); - } - StringBuilder line = new StringBuilder(); - line.append("[DR] (").append(name).append(") "); - line.append(task); - System.out.println(StringUtils.abbreviate(line.toString(), getWidth())); - System.out.println(displaySeparator()); - } - - /** - * Displays the exception in the terminal. - * @param exception The exception object. - */ - public static void printException(AraraException exception) { - ConfigurationController.getInstance().put("display.exception", true); - ConfigurationController.getInstance().put("execution.status", 2); - boolean display = false; - if (ConfigurationController.getInstance().contains("display.line")) { - display = (Boolean) ConfigurationController. - getInstance().get("display.line"); - } - if (ConfigurationController.getInstance().contains("display.result")) { - if (((Boolean) ConfigurationController. - getInstance().get("display.result")) == true) { - addNewLine(); - } - } - if (display) { - if (!isDryRunMode()) { - if (!isVerboseMode()) { - buildShortError(); - } else { - buildLongError(); - } - addNewLine(); - } - } - String text = exception.hasException() ? - exception.getMessage().concat(" ").concat( - messages.getMessage( - Messages.INFO_DISPLAY_EXCEPTION_MORE_DETAILS - ) - ) - : exception.getMessage(); - logger.error(text); - wrapText(text); - if (exception.hasException()) { - addNewLine(); - displayDetailsLine(); - String details = exception.getException().getMessage(); - logger.error(details); - wrapText(details); - } - } - - /** - * Gets the string representation of the provided boolean value. - * @param value The boolean value. - * @return The string representation. - */ - private static String getResult(boolean value) { - return (value == true ? - messages.getMessage( - Messages.INFO_LABEL_ON_SUCCESS - ) - : messages.getMessage(Messages.INFO_LABEL_ON_FAILURE)); - } - - /** - * Displays the short version of an error in the terminal. - */ - private static void buildShortError() { - int result = getLongestMatch(); - System.out.println(StringUtils.leftPad( - messages.getMessage( - Messages.INFO_LABEL_ON_ERROR - ), - result - )); - } - - /** - * Displays the long version of an error in the terminal. - */ - private static void buildLongError() { - String line = StringUtils.leftPad( - " ".concat(messages.getMessage(Messages.INFO_LABEL_ON_ERROR)), - getWidth(), "-"); - System.out.println(line); - } - - /** - * Gets the default terminal width defined in the settings. - * @return An integer representing the terminal width. - */ - private static int getWidth() { - return (Integer) ConfigurationController. - getInstance().get("application.width"); - } - - /** - * Displays the provided text wrapped nicely according to the default - * terminal width. - * @param text The text to be displayed. - */ - public static void wrapText(String text) { - System.out.println(WordUtils.wrap(text, getWidth())); - } - - /** - * Checks if the execution is in dry-run mode. - * @return A boolean value indicating if the execution is in dry-run mode. - */ - private static boolean isDryRunMode() { - return (Boolean) ConfigurationController. - getInstance().get("execution.dryrun"); - } - - /** - * Checks if the execution is in verbose mode. - * @return A boolean value indicating if the execution is in verbose mode. - */ - private static boolean isVerboseMode() { - return (Boolean) ConfigurationController. - getInstance().get("execution.verbose"); - } - - /** - * Displays the rule authors in the terminal. - * @param authors The list of authors. - */ - public static void printAuthors(List<String> authors) { - StringBuilder line = new StringBuilder(); - line.append(authors.size() == 1 ? - messages.getMessage(Messages.INFO_LABEL_AUTHOR) - : messages.getMessage(Messages.INFO_LABEL_AUTHORS)); - String text = authors.isEmpty() ? - messages.getMessage(Messages.INFO_LABEL_NO_AUTHORS) - : CommonUtils.getCollectionElements( - CommonUtils.trimSpaces(authors), "", "", ", "); - line.append(" ").append(text); - wrapText(line.toString()); - } - - /** - * Displays the current conditional in the terminal. - * @param conditional The conditional object. - */ - public static void printConditional(Conditional conditional) { - if (conditional.getType() != Conditional.ConditionalType.NONE) { - StringBuilder line = new StringBuilder(); - line.append(messages.getMessage(Messages.INFO_LABEL_CONDITIONAL)); - line.append(" ("); - line.append(String.valueOf(conditional.getType())); - line.append(") ").append(conditional.getCondition()); - wrapText(line.toString()); - } - } - - /** - * Displays the file information in the terminal. - */ - public static void printFileInformation() { - File file = (File) ConfigurationController. - getInstance().get("execution.reference"); - String version = (String) ConfigurationController. - getInstance().get("application.version"); - String revision = (String) ConfigurationController. - getInstance().get("application.revision"); - String line = messages.getMessage( - Messages.INFO_DISPLAY_FILE_INFORMATION, - file.getName(), - CommonUtils.calculateFileSize(file), - CommonUtils.getLastModifiedInformation(file) - ); - logger.info(messages.getMessage( - Messages.LOG_INFO_WELCOME_MESSAGE, - version, - revision - )); - logger.info(displaySeparator()); - logger.info(String.format("::: arara @ %s", - getApplicationPath() - )); - logger.info(String.format("::: Java %s, %s", - CommonUtils.getSystemProperty("java.version", - "[unknown version]"), - CommonUtils.getSystemProperty("java.vendor", - "[unknown vendor]") - )); - logger.info(String.format("::: %s", - CommonUtils.getSystemProperty("java.home", - "[unknown location]") - )); - logger.info(String.format("::: %s, %s, %s", - CommonUtils.getSystemProperty("os.name", - "[unknown OS name]"), - CommonUtils.getSystemProperty("os.arch", - "[unknown OS arch]"), - CommonUtils.getSystemProperty("os.version", - "[unknown OS version]") - )); - logger.info(String.format("::: user.home @ %s", - CommonUtils.getSystemProperty("user.home", - "[unknown user's home directory]") - )); - logger.info(String.format("::: user.dir @ %s", - CommonUtils.getSystemProperty("user.dir", - "[unknown user's working directory]") - )); - logger.info(String.format("::: CF @ %s", - (String) ConfigurationController. - getInstance().get("execution.configuration.name") - )); - logger.info(displaySeparator()); - logger.info(line); - wrapText(line); - addNewLine(); - } - - /** - * Displays the elapsed time in the terminal. - */ - public static void printTime() { - if (ConfigurationController.getInstance().contains("display.time")) { - if ((ConfigurationController.getInstance().contains("display.line")) - || (ConfigurationController.getInstance(). - contains("display.exception"))) { - addNewLine(); - } - String text = messages.getMessage( - Messages.INFO_DISPLAY_EXECUTION_TIME, StopWatch.getTime()); - logger.info(text); - wrapText(text); - } - } - - /** - * Displays the application logo in the terminal. - */ - public static void printLogo() { - StringBuilder builder = new StringBuilder(); - builder.append(" __ _ _ __ __ _ _ __ __ _ ").append("\n"); - builder.append(" / _` | '__/ _` | '__/ _` |").append("\n"); - builder.append("| (_| | | | (_| | | | (_| |").append("\n"); - builder.append(" \\__,_|_| \\__,_|_| \\__,_|"); - System.out.println(builder.toString()); - addNewLine(); - } - - /** - * Adds a new line in the terminal. - */ - private static void addNewLine() { - System.out.println(); - } - - /** - * Displays a line containing details. - */ - private static void displayDetailsLine() { - String line = messages.getMessage( - Messages.INFO_LABEL_ON_DETAILS).concat(" "); - line = StringUtils.rightPad( - StringUtils.abbreviate(line, getWidth()), getWidth(), "-"); - System.out.println(line); - } - - /** - * Gets the output separator with the provided text. - * @param message The provided text. - * @return A string containing the output separator with the provided text. - */ - public static String displayOutputSeparator(String message) { - return StringUtils.center(" ".concat(message).concat(" "), - getWidth(), "-"); - } - - /** - * Gets the line separator. - * @return A string containing the line separator. - */ - public static String displaySeparator() { - return StringUtils.repeat("-", getWidth()); - } - - /** - * Gets the application path. - * @return A string containing the application path. - */ - private static String getApplicationPath() { - try { - return ConfigurationUtils.getApplicationPath(); - } - catch (AraraException ae) { - return "[unknown application path]"; - } - } - -} |