/* * Copyright (c) 2019-2020. Developed by Hedgecode. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.hedgecode.chess.scanner; import java.time.LocalDateTime; import java.util.Calendar; /** * ChessHog Scanner utility class for working with console. * * @author Dmitry Samoshin aka gotty */ public class ScannerConsole { private static final String[] ASCII_LOGO = { " _______ _ _ ", " | | _|_ _| |___ ___ ___ ___ _| |___ ", " | | -_| . | . | -_| _| . | . | -_| ", " | |___|___|_ |___|___|___|___|___| ", " _ |___|___| _ |___| ", " ___| |_ ___ ___ ___| |_ ___ ___ ___ ___ ___ ___ ___ ___ ___ ", " | _| | -_|_ -|_ -| | . | . | |_ -| _| .'| | | -_| _| ", " |___|_|_|___|___|___|_|_|___|_ | |___|___|__,|_|_|_|_|___|_| ", " |___| " }; private static final String COPYRIGHT = "Copyright (c) Hedgecode"; private static boolean logMode = false; private ScannerConsole() { } public static void setLogMode(boolean isLogMode) { logMode = isLogMode; } public static void console(String message) { System.out.println( String.format( logMode ? "[%1$tT] %2$s" : "%2$s", LocalDateTime.now(), message == null ? "" : message ) ); } public static void empty() { console(null); } public static void init() { asciiLogo(); empty(); copyright(); version(); empty(); } private static void asciiLogo() { for (String line : ASCII_LOGO) { console(line); } } private static void copyright() { int inceptionYear = ScannerProperties.getInt("scanner.inception.year"); int currentYear = Calendar.getInstance().get(Calendar.YEAR); String copyright = currentYear > inceptionYear ? String.format("%s-%s %s", inceptionYear, currentYear, COPYRIGHT) : String.format("%s %s", currentYear, COPYRIGHT); console( alignCenter(copyright) ); } private static void version() { console( alignCenter( String.format( "v. %s", ScannerProperties.get("scanner.version") ) ) ); } private static String alignCenter(String message) { int indent = (ASCII_LOGO[0].length() + message.length()) / 2; return String.format( "%" + indent + "s", message ); } }