Interface Printer

  • All Known Implementing Classes:
    DefaultPrinter

    public interface Printer
    Interface for printing objects to the console with various formatting options. The Printer interface provides methods for displaying objects in different formats, such as tables or structured output, with customizable styling and formatting options. Implementations of this interface handle the conversion of various object types to formatted text output, with support for syntax highlighting and structured display.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static class  Printer.TableRows
      Enumeration specifying which rows in a table should be highlighted.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String ALL
      Value: Boolean
      Applies: TABLE
      Ignore columnsOut configuration.
      static java.util.List<java.lang.String> BOOLEAN_KEYS  
      static java.lang.String BORDER
      Value: String
      Applies: TABLE
      Table cell vertical border character.
      static java.lang.String COLUMNS
      Value: List<String>
      Applies: MAP and TABLE
      Display given keys/columns on map/table.
      static java.lang.String COLUMNS_IN
      Value: List<String>
      Applies: TABLE
      These map values will be added to the table before all the other keys.
      static java.lang.String COLUMNS_OUT
      Value: List<String>
      Applies: TABLE
      These map values will not be inserted to the table.
      static java.lang.String EXCLUDE
      Value: List<String>
      Applies: TABLE
      Exclude given columns on table.
      static java.lang.String HIGHLIGHT_VALUE
      Value: Map<regex, function>.
      Applies: TABLE
      If command result map key matches with regex the highlight function is applied to the corresponding map value.
      static java.lang.String INCLUDE
      Value: List<String>
      Applies: TABLE
      Include given columns on table.
      static java.lang.String INDENTION
      Value: Integer
      Applies: MAP
      Indention size.
      static java.lang.String MAP_SIMILARITY
      Value: Double
      Applies: MAP and TABLE
      default value 0.8 i.e.
      static java.lang.String MAX_COLUMN_WIDTH
      Value: Integer
      Applies: MAP and TABLE
      Maximum column width.
      static java.lang.String MAX_DEPTH
      Value: Integer
      Applies: MAP
      Maximum depth objects are resolved.
      static java.lang.String MAXROWS
      Value: Integer
      Applies: MAP and TABLE
      Maximum number of lines to display.
      static java.lang.String MULTI_COLUMNS
      Value: Boolean
      Applies: TABLE
      List the collection of simple values in multiple columns DEFAULT: list values in one column
      static java.lang.String OBJECT_TO_MAP
      Value: Map<class, function>
      Applies: MAP and TABLE
      Overrides the ScriptEngine toMap() method.
      static java.lang.String OBJECT_TO_STRING
      Value: Map<class, function>
      Applies: MAP and TABLE
      Overrides the ScriptEngine toString() method.
      static java.lang.String ONE_ROW_TABLE
      Value: Boolean
      Applies: TABLE
      Display one row data on table.
      static java.lang.String ROW_HIGHLIGHT
      Value: TableRows
      Applies: TABLE
      Highlight table rows.
      static java.lang.String ROWNUM
      Value: Boolean
      Applies: TABLE
      Display table row numbers.
      static java.lang.String SHORT_NAMES
      Value: Boolean
      Applies: TABLE
      Truncate table column names: property.field to field.
      static java.lang.String SKIP_DEFAULT_OPTIONS
      Value: Boolean
      Applies: MAP and TABLE
      Ignore all options defined in PRNT_OPTIONS.
      static java.lang.String STRUCT_ON_TABLE
      Value: Boolean
      Applies: TABLE
      Display object structures and lists on table.
      static java.lang.String STYLE
      Value: String
      Use nanorc STYLE
      static java.lang.String TO_STRING
      Value: Boolean
      Applies: MAP and TABLE
      Use object's toString() method to get print value DEFAULT: object's fields are put to property map before printing
      static java.lang.String VALUE_STYLE
      Value: String
      Applies: MAP and TABLE
      Nanorc syntax style used to highlight values.
      static java.lang.String VALUE_STYLE_ALL
      Value: Boolean
      Applies: MAP and TABLE
      Highlight everything also strings with spaces DEFAULT: highlight only strings without spaces or enclosed by quotes or brackets
      static java.lang.String WIDTH
      Value: Integer
      Applies: MAP and TABLE
      Display width (default terminal width).
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default void println​(java.lang.Object object)
      Prints an object to the console using default formatting options.
      void println​(java.util.Map<java.lang.String,​java.lang.Object> options, java.lang.Object object)
      Prints an object to the console with the specified formatting options.
      default java.lang.Exception prntCommand​(CommandInput input)
      Executes a print command with the given input.
      boolean refresh()
      Clears the printer's syntax highlighter cache and refreshes internal state.
    • Field Detail

      • ALL

        static final java.lang.String ALL
        Value: Boolean
        Applies: TABLE
        Ignore columnsOut configuration.
        See Also:
        Constant Field Values
      • COLUMNS

        static final java.lang.String COLUMNS
        Value: List<String>
        Applies: MAP and TABLE
        Display given keys/columns on map/table.
        See Also:
        Constant Field Values
      • EXCLUDE

        static final java.lang.String EXCLUDE
        Value: List<String>
        Applies: TABLE
        Exclude given columns on table.
        See Also:
        Constant Field Values
      • INCLUDE

        static final java.lang.String INCLUDE
        Value: List<String>
        Applies: TABLE
        Include given columns on table.
        See Also:
        Constant Field Values
      • INDENTION

        static final java.lang.String INDENTION
        Value: Integer
        Applies: MAP
        Indention size.
        See Also:
        Constant Field Values
      • MAX_COLUMN_WIDTH

        static final java.lang.String MAX_COLUMN_WIDTH
        Value: Integer
        Applies: MAP and TABLE
        Maximum column width.
        See Also:
        Constant Field Values
      • MAX_DEPTH

        static final java.lang.String MAX_DEPTH
        Value: Integer
        Applies: MAP
        Maximum depth objects are resolved.
        See Also:
        Constant Field Values
      • MAXROWS

        static final java.lang.String MAXROWS
        Value: Integer
        Applies: MAP and TABLE
        Maximum number of lines to display.
        See Also:
        Constant Field Values
      • ONE_ROW_TABLE

        static final java.lang.String ONE_ROW_TABLE
        Value: Boolean
        Applies: TABLE
        Display one row data on table.
        See Also:
        Constant Field Values
      • ROWNUM

        static final java.lang.String ROWNUM
        Value: Boolean
        Applies: TABLE
        Display table row numbers.
        See Also:
        Constant Field Values
      • SHORT_NAMES

        static final java.lang.String SHORT_NAMES
        Value: Boolean
        Applies: TABLE
        Truncate table column names: property.field to field.
        See Also:
        Constant Field Values
      • SKIP_DEFAULT_OPTIONS

        static final java.lang.String SKIP_DEFAULT_OPTIONS
        Value: Boolean
        Applies: MAP and TABLE
        Ignore all options defined in PRNT_OPTIONS.
        See Also:
        Constant Field Values
      • STRUCT_ON_TABLE

        static final java.lang.String STRUCT_ON_TABLE
        Value: Boolean
        Applies: TABLE
        Display object structures and lists on table.
        See Also:
        Constant Field Values
      • STYLE

        static final java.lang.String STYLE
        Value: String
        Use nanorc STYLE
        See Also:
        Constant Field Values
      • TO_STRING

        static final java.lang.String TO_STRING
        Value: Boolean
        Applies: MAP and TABLE
        Use object's toString() method to get print value DEFAULT: object's fields are put to property map before printing
        See Also:
        Constant Field Values
      • VALUE_STYLE

        static final java.lang.String VALUE_STYLE
        Value: String
        Applies: MAP and TABLE
        Nanorc syntax style used to highlight values.
        See Also:
        Constant Field Values
      • WIDTH

        static final java.lang.String WIDTH
        Value: Integer
        Applies: MAP and TABLE
        Display width (default terminal width).
        See Also:
        Constant Field Values
      • BORDER

        static final java.lang.String BORDER
        Value: String
        Applies: TABLE
        Table cell vertical border character.
        See Also:
        Constant Field Values
      • ROW_HIGHLIGHT

        static final java.lang.String ROW_HIGHLIGHT
        Value: TableRows
        Applies: TABLE
        Highlight table rows.
        See Also:
        Constant Field Values
      • COLUMNS_IN

        static final java.lang.String COLUMNS_IN
        Value: List<String>
        Applies: TABLE
        These map values will be added to the table before all the other keys.
        See Also:
        Constant Field Values
      • COLUMNS_OUT

        static final java.lang.String COLUMNS_OUT
        Value: List<String>
        Applies: TABLE
        These map values will not be inserted to the table.
        See Also:
        Constant Field Values
      • HIGHLIGHT_VALUE

        static final java.lang.String HIGHLIGHT_VALUE
        Value: Map<regex, function>.
        Applies: TABLE
        If command result map key matches with regex the highlight function is applied to the corresponding map value. The regex = * is processed after all the other regexes and the highlight function will be applied to all map values that have not been already highlighted.
        See Also:
        Constant Field Values
      • MAP_SIMILARITY

        static final java.lang.String MAP_SIMILARITY
        Value: Double
        Applies: MAP and TABLE
        default value 0.8 i.e. if at least of 4 of the 5 results map keys match with reference key set the result will be printed out as a table.
        See Also:
        Constant Field Values
      • OBJECT_TO_MAP

        static final java.lang.String OBJECT_TO_MAP
        Value: Map<class, function>
        Applies: MAP and TABLE
        Overrides the ScriptEngine toMap() method.
        See Also:
        Constant Field Values
      • OBJECT_TO_STRING

        static final java.lang.String OBJECT_TO_STRING
        Value: Map<class, function>
        Applies: MAP and TABLE
        Overrides the ScriptEngine toString() method.
        See Also:
        Constant Field Values
      • VALUE_STYLE_ALL

        static final java.lang.String VALUE_STYLE_ALL
        Value: Boolean
        Applies: MAP and TABLE
        Highlight everything also strings with spaces DEFAULT: highlight only strings without spaces or enclosed by quotes or brackets
        See Also:
        Constant Field Values
      • MULTI_COLUMNS

        static final java.lang.String MULTI_COLUMNS
        Value: Boolean
        Applies: TABLE
        List the collection of simple values in multiple columns DEFAULT: list values in one column
        See Also:
        Constant Field Values
      • BOOLEAN_KEYS

        static final java.util.List<java.lang.String> BOOLEAN_KEYS
    • Method Detail

      • println

        default void println​(java.lang.Object object)
        Prints an object to the console using default formatting options. This is a convenience method that calls println(Map, Object) with an empty options map.
        Parameters:
        object - the object to print
      • println

        void println​(java.util.Map<java.lang.String,​java.lang.Object> options,
                     java.lang.Object object)
        Prints an object to the console with the specified formatting options. The method handles different object types and formats them according to the provided options.
        Parameters:
        options - a map of formatting options that control how the object is displayed
        object - the object to print
      • prntCommand

        default java.lang.Exception prntCommand​(CommandInput input)
        Executes a print command with the given input. This method can be implemented by printer implementations to handle specific print commands. The default implementation returns null, indicating no error occurred.
        Parameters:
        input - the command input containing the command and its arguments
        Returns:
        an Exception if an error occurred during command execution, or null if successful
      • refresh

        boolean refresh()
        Clears the printer's syntax highlighter cache and refreshes internal state. This method should be called when the highlighting rules or styles have changed and need to be reapplied.
        Returns:
        true if the refresh operation was successful, false otherwise