Interface TableBuilder

  • All Superinterfaces:
    org.refcodes.mixin.EscapeCodesStatusAccessor, org.refcodes.mixin.EscapeCodesStatusAccessor.EscapeCodeStatusBuilder<TableBuilder>, org.refcodes.mixin.EscapeCodesStatusAccessor.EscapeCodeStatusMutator, org.refcodes.mixin.EscapeCodesStatusAccessor.EscapeCodeStatusProperty, org.refcodes.mixin.PrintStreamAccessor, org.refcodes.mixin.PrintStreamAccessor.PrintStreamBuilder<TableBuilder>, org.refcodes.mixin.PrintStreamAccessor.PrintStreamMutator, org.refcodes.mixin.PrintStreamAccessor.PrintStreamProperty, org.refcodes.mixin.ResetEscapeCodeAccessor, org.refcodes.mixin.ResetEscapeCodeAccessor.ResetEscapeCodeBuilder<TableBuilder>, org.refcodes.mixin.ResetEscapeCodeAccessor.ResetEscapeCodeMutator, org.refcodes.mixin.ResetEscapeCodeAccessor.ResetEscapeCodeProperty, org.refcodes.mixin.RowWidthAccessor, org.refcodes.mixin.RowWidthAccessor.RowWidthBuilder<TableBuilder>, org.refcodes.mixin.RowWidthAccessor.RowWidthMutator, org.refcodes.mixin.RowWidthAccessor.RowWidthProperty, TablePrinter
    All Known Implementing Classes:
    TableBuilderImpl


    public interface TableBuilder
    extends TablePrinter, org.refcodes.mixin.RowWidthAccessor.RowWidthProperty, org.refcodes.mixin.RowWidthAccessor.RowWidthBuilder<TableBuilder>, org.refcodes.mixin.PrintStreamAccessor.PrintStreamProperty, org.refcodes.mixin.PrintStreamAccessor.PrintStreamBuilder<TableBuilder>, org.refcodes.mixin.ResetEscapeCodeAccessor.ResetEscapeCodeProperty, org.refcodes.mixin.ResetEscapeCodeAccessor.ResetEscapeCodeBuilder<TableBuilder>, org.refcodes.mixin.EscapeCodesStatusAccessor.EscapeCodeStatusProperty, org.refcodes.mixin.EscapeCodesStatusAccessor.EscapeCodeStatusBuilder<TableBuilder>
    The table printer has the Builder-Pattern applied to configure a text (ASCII_HEADER_ASCII_BODY) table for later printing custom tables with a title, the table rows and if required a table tail. As of the convention over configuration paradigm, reasonable default values are pre-configured in order to start right away; fine-tune your configuration with the provided builder methods.
    • Method Detail

      • addColumn

        TableBuilder addColumn​()
        Adds a column and returns this TableBuilder instance as of the Builder-Pattern.
        Returns:
        This TableBuilder instance to continue configuration.
      • printHeader

        default void printHeader​(String... aColumns)
        Prints the table's header to the PrintStream configured for this PrintWriter with the content of the provided columns.
        Specified by:
        printHeader in interface TablePrinter
        Parameters:
        aColumns - The columns to be used in the table's header.
      • printHeaderEnd

        default void printHeaderEnd​(TableBuilder aTablePrinter)
        Ends the headers of the provided TableBuilder for this table printer to continue to the PrintStream configured for this PrintWriter; different header widths and column widths are taken care of, so it is a pleasure to mix different TableBuilders, especially when empty columns may result in better using another column layout making better use of the available width.
        Specified by:
        printHeaderEnd in interface TablePrinter
        Parameters:
        aTablePrinter - The TableBuilder to which to append this TableBuilder's headers.
      • printRow

        default void printRow​(String... aColumns)
        Prints the table's (next) row to the PrintStream configured for this PrintWriter with the content of the provided columns. Call this method for each row to print out.
        Specified by:
        printRow in interface TablePrinter
        Parameters:
        aColumns - The columns to be used in the (next) table's row.
      • printRowEnd

        default void printRowEnd​(TableBuilder aTablePrinter)
        Ends the rows of the provided TableBuilder for this table printer to continue to the PrintStream configured for this PrintWriter; different row widths and column widths are taken care of, so it is a pleasure to mix different TableBuilders, especially when empty columns may result in better using another column layout making better use of the available width.
        Specified by:
        printRowEnd in interface TablePrinter
        Parameters:
        aTablePrinter - The TableBuilder to which to append this TableBuilder's rows.
      • toColumnWidths

        int[] toColumnWidths​()
        Returns the currently calculated or configured column widths. Changing the row width or adding a column will affect the result being returned.
        Returns:
        The widths of the rows as currently calculated.
      • withBorderEscapeCode

        TableBuilder withBorderEscapeCode​(String aEscapeCode)
        Sets an overall ANSI Escape-Code for the borders and returns this TableBuilder instance as of the Builder-Pattern. In case an ANSI Escape-Codes is set, then the ANSI Escape-Code is prepended and an ANSI Reset-Code is appended to the according text being printed. The latest ANSI Escape-Code set wins.
        Parameters:
        aEscapeCode - The String to be used for ANSI escaping.
        Returns:
        This TableBuilder instance to continue configuration.
      • withColumnHorizAlignTextMode

        TableBuilder withColumnHorizAlignTextMode​(HorizAlignTextMode aHorizAlignTextMode)
        Sets the column's alignment mode for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest alignment mode being set wins.
        Parameters:
        aHorizAlignTextMode - The HorizAlignTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withColumnMoreTextMode

        TableBuilder withColumnMoreTextMode​(MoreTextMode aMoreTextMode)
        Sets the column's "more" mode for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest "more" mode being set wins.
        Parameters:
        aMoreTextMode - The MoreTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withColumnSplitTextMode

        TableBuilder withColumnSplitTextMode​(SplitTextMode aSplitTextMode)
        Sets the column's line split mode for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest line split mode being set wins.
        Parameters:
        aSplitTextMode - The SplitTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withColumnTextFormatMode

        TableBuilder withColumnTextFormatMode​(TextFormatMode aTextFormatMode)
        Sets the column's format mode for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest format mode being set wins.
        Parameters:
        aTextFormatMode - The TextFormatMode to be used for formating the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withColumnWidth

        TableBuilder withColumnWidth​(int aWidth)
                              throws IllegalStateException
        Sets the current column's (the last added one with the addColumn() method) absolute width () @link ColumnWidthType#ABSOLUTE) and returns this TableBuilder instance as of the Builder-Pattern. Same as calling "withColumnWidth(int, ColumnWidthType.ABSOLUTE)}"
        Parameters:
        aWidth - The width for the column.
        Returns:
        This TableBuilder instance to continue configuration.
        Throws:
        IllegalStateException - in case there is none column already added.
      • withEscapeCode

        TableBuilder withEscapeCode​(String aEscapeCode)
        Sets an overall ANSI Escape-Code for the header, the rows as well as the borders; and returns this TableBuilder instance as of the builder pattern. In case an ANSI Escape-Codes is set, then an ANSI Reset-Code is prepended to the according text being printed. The latest ANSI escape code set wins.
        Parameters:
        aEscapeCode - The String to be used for ANSI escaping.
        Returns:
        This TableBuilder instance to continue configuration.
      • withEscapeCodesEnabled

        default TableBuilder withEscapeCodesEnabled​(boolean isEscCodesEnabled)
        Sets an overall ANSI Escape-Code support for the TableBuilder, for the rows as well as the borders; and returns this TableBuilder instance as of the Builder-Pattern. In case of being set to Boolean.FALSE, then an ANSI support is disabled altogether, else it is enabled (again, if already configured). The latest setting wins.
        Specified by:
        withEscapeCodesEnabled in interface org.refcodes.mixin.EscapeCodesStatusAccessor.EscapeCodeStatusBuilder<TableBuilder>
        Parameters:
        isEscCodesEnabled - True to enable, false to disable Escape-Code support altogether.
        Returns:
        This TableBuilder instance to continue configuration.
      • withHeaderColumnEscapeCode

        TableBuilder withHeaderColumnEscapeCode​(String aEscapeCode)
        Sets the column's header ANSI Escape-Code for the current header column and returns this TableBuilder instance as of the Builder-Pattern. The latest ANSI Escape-Code being set wins.
        Parameters:
        aEscapeCode - The String to be used for ANSI escaping.
        Returns:
        This TableBuilder instance to continue configuration.
      • withHeaderColumnHorizAlignTextMode

        TableBuilder withHeaderColumnHorizAlignTextMode​(HorizAlignTextMode aHorizAlignTextMode)
        Sets the column's header alignment mode for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest alignment mode being set wins.
        Parameters:
        aHorizAlignTextMode - The HorizAlignTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withHeaderColumnMoreTextMode

        TableBuilder withHeaderColumnMoreTextMode​(MoreTextMode aMoreTextMode)
        Sets the column's header "more" mode for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest "more" mode being set wins.
        Parameters:
        aMoreTextMode - The MoreTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withHeaderColumnSplitTextMode

        TableBuilder withHeaderColumnSplitTextMode​(SplitTextMode aSplitTextMode)
        Sets the column's header line split mode for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest line split mode being set wins.
        Parameters:
        aSplitTextMode - The SplitTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withHeaderColumnTextFormatMode

        TableBuilder withHeaderColumnTextFormatMode​(TextFormatMode aTextFormatMode)
        Sets the column's header format mode for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest format mode being set wins.
        Parameters:
        aTextFormatMode - The TextFormatMode to be used for formating the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withHeaderEscapeCode

        TableBuilder withHeaderEscapeCode​(String aEscapeCode)
        Sets an overall ANSI Escape-Code for the header and returns this TableBuilder instance as of the Builder-Pattern. The latest ANSI Escape-Code being set wins.
        Parameters:
        aEscapeCode - The String to be used for ANSI escaping.
        Returns:
        This TableBuilder instance to continue configuration.
      • withHeaderHorizAlignTextMode

        TableBuilder withHeaderHorizAlignTextMode​(HorizAlignTextMode aHorizAlignTextMode)
        Sets an overall alignment mode for the header and returns this TableBuilder instance as of the Builder-Pattern. The latest alignment mode being set wins.
        Parameters:
        aHorizAlignTextMode - The HorizAlignTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withHeaderMoreTextMode

        TableBuilder withHeaderMoreTextMode​(MoreTextMode aMoreTextMode)
        Sets an overall "more" mode for the header and returns this TableBuilder instance as of the Builder-Pattern. The latest "more" mode being set wins.
        Parameters:
        aMoreTextMode - The MoreTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withHeaderSplitTextMode

        TableBuilder withHeaderSplitTextMode​(SplitTextMode aSplitTextMode)
        Sets an overall line split mode for the header and returns this TableBuilder instance as of the Builder-Pattern. The latest line split mode being set wins.
        Parameters:
        aSplitTextMode - The SplitTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withHeaderTextFormatMode

        TableBuilder withHeaderTextFormatMode​(TextFormatMode aTextFormatMode)
        Sets an overall format mode for the header and returns this TableBuilder instance as of the Builder-Pattern. The latest format mode being set wins.
        Parameters:
        aTextFormatMode - The TextFormatMode to be used for formating the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withHorizAlignTextMode

        TableBuilder withHorizAlignTextMode​(HorizAlignTextMode aHorizAlignTextMode)
        Sets an overall alignment mode for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest alignment mode being set wins.
        Parameters:
        aHorizAlignTextMode - The HorizAlignTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withLeftBorder

        TableBuilder withLeftBorder​(boolean hasLeftBorder)
        Sets whether to print the left border and returns this TableBuilder instance as of the Builder-Pattern.
        Parameters:
        hasLeftBorder - True in case a left border is to be printed, elser false
        Returns:
        This TableBuilder instance to continue configuration.
      • withLineBreak

        TableBuilder withLineBreak​(String aLineBreak)
        Sets the required line break and returns this TableBuilder instance as of the Builder-Pattern.
        Parameters:
        aLineBreak - The line break character to use, by default the platform specific one is used.
        Returns:
        This TableBuilder instance to continue configuration.
      • withMoreTextMode

        TableBuilder withMoreTextMode​(MoreTextMode aMoreTextMode)
        Sets an overall "more" mode for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest "more" mode being set wins.
        Parameters:
        aMoreTextMode - The MoreTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withPrintStream

        default TableBuilder withPrintStream​(PrintStream aPrintStream)
        Sets the print stream to be used when using the print methods of the TableBuilder and returns this TableBuilder instance as of the Builder-Pattern.
        Specified by:
        withPrintStream in interface org.refcodes.mixin.PrintStreamAccessor.PrintStreamBuilder<TableBuilder>
        Parameters:
        aPrintStream - The PrintStream to be used when printing out the table.
        Returns:
        This TableBuilder instance to continue configuration.
      • withResetEscapeCode

        TableBuilder withResetEscapeCode​(String aEscapeCode)
        Sets the ANSI reset Escape-Code for this TableBuilder instance as of the Builder-Pattern. In case an ANSI Escape-Codes is set, then this ANSI Reset-Code is prepended to the according text being printed.
        Specified by:
        withResetEscapeCode in interface org.refcodes.mixin.ResetEscapeCodeAccessor.ResetEscapeCodeBuilder<TableBuilder>
        Parameters:
        aEscapeCode - The String to be used for resetting ANSI escaping.
        Returns:
        This TableBuilder instance to continue configuration.
      • withRightBorder

        TableBuilder withRightBorder​(boolean hasRightBorder)
        Sets whether to print the right border and returns this TableBuilder instance as of the Builder-Pattern.
        Parameters:
        hasRightBorder - True in case a right border is to be printed, elser false
        Returns:
        This TableBuilder instance to continue configuration.
      • withDividerLine

        TableBuilder withDividerLine​(boolean hasDividerLine)
        Sets whether to print the divider line between the columns of a row and returns this TableBuilder instance as of the Builder-Pattern.
        Parameters:
        hasDividerLine - True in case the divider lines are to be printed, elser false
        Returns:
        This TableBuilder instance to continue configuration.
      • withRowColumnEscapeCode

        TableBuilder withRowColumnEscapeCode​(String aEscapeCode)
        Sets the column's header ANSI Escape-Code for the current row column and returns this TableBuilder instance as of the Builder-Pattern. The latest ANSI Escape-Code being set wins.
        Parameters:
        aEscapeCode - The String to be used for ANSI escaping.
        Returns:
        This TableBuilder instance to continue configuration.
      • withRowColumnHorizAlignTextMode

        TableBuilder withRowColumnHorizAlignTextMode​(HorizAlignTextMode aHorizAlignTextMode)
        Sets the column's header alignment mode for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest alignment mode being set wins.
        Parameters:
        aHorizAlignTextMode - The HorizAlignTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withRowColumnMoreTextMode

        TableBuilder withRowColumnMoreTextMode​(MoreTextMode aMoreTextMode)
        Sets the column's header "more" mode for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest "more" mode being set wins.
        Parameters:
        aMoreTextMode - The MoreTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withRowColumnSplitTextMode

        TableBuilder withRowColumnSplitTextMode​(SplitTextMode aSplitTextMode)
        Sets the column's header line split mode for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest line split mode being set wins.
        Parameters:
        aSplitTextMode - The SplitTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withRowColumnTextFormatMode

        TableBuilder withRowColumnTextFormatMode​(TextFormatMode aTextFormatMode)
        Sets the column's row format mode for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest format mode being set wins.
        Parameters:
        aTextFormatMode - The TextFormatMode to be used for formating the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withRowEscapeCode

        TableBuilder withRowEscapeCode​(String aEscapeCode)
        Sets an overall ANSI Escape-Code for the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest ANSI Escape-Code being set wins.
        Parameters:
        aEscapeCode - The String to be used for ANSI escaping.
        Returns:
        This TableBuilder instance to continue configuration.
      • withRowHorizAlignTextMode

        TableBuilder withRowHorizAlignTextMode​(HorizAlignTextMode aHorizAlignTextMode)
        Sets an overall alignment mode for the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest alignment mode being set wins.
        Parameters:
        aHorizAlignTextMode - The HorizAlignTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withRowMoreTextMode

        TableBuilder withRowMoreTextMode​(MoreTextMode aMoreTextMode)
        Sets an overall "more" mode for the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest "more" mode being set wins.
        Parameters:
        aMoreTextMode - The MoreTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withRowSplitTextMode

        TableBuilder withRowSplitTextMode​(SplitTextMode aSplitTextMode)
        Sets an overall line split mode for the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest line split mode being set wins.
        Parameters:
        aSplitTextMode - The SplitTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withRowTextFormatMode

        TableBuilder withRowTextFormatMode​(TextFormatMode aTextFormatMode)
        Sets an overall format mode for the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest format mode being set wins.
        Parameters:
        aTextFormatMode - The TextFormatMode to be used for formating the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withSplitTextMode

        TableBuilder withSplitTextMode​(SplitTextMode aSplitTextMode)
        Sets an overall line split mode for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest line split mode being set wins.
        Parameters:
        aSplitTextMode - The SplitTextMode to be used for aligning the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • withTableStyle

        TableBuilder withTableStyle​(TableStyle aTableStyle)
        Sets the TableStyle to use when printing and returns this TableBuilder instance as of the Builder-Pattern.
        Parameters:
        aTableStyle - The TableStyle defining the tables style to be used when printing the table borders.
        Returns:
        This TableBuilder instance to continue configuration.
      • withTextColumnEscapeCode

        TableBuilder withTextColumnEscapeCode​(String aEscapeCode)
        Sets the column's ANSI Escape-Code for the current (header and row) column and returns this TableBuilder instance as of the builder pattern. The latest ANSI Escape-Code being set wins.
        Parameters:
        aEscapeCode - The String to be used for ANSI escaping.
        Returns:
        This TableBuilder instance to continue configuration.
      • withTextEscapeCode

        TableBuilder withTextEscapeCode​(String aEscapeCode)
        Sets an overall ANSI Escape-Code for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. In case an ANSI Escape-Codes is set, then the ANSI Escape-Code is prepended and an ANSI Reset-Code is appended to the according text being printed. The latest ANSI Escape-Code set wins.
        Parameters:
        aEscapeCode - The String to be used for ANSI escaping.
        Returns:
        This TableBuilder instance to continue configuration.
      • withTextFormatMode

        TableBuilder withTextFormatMode​(TextFormatMode aTextFormatMode)
        Sets an overall format mode for the header and the rows and returns this TableBuilder instance as of the Builder-Pattern. The latest format mode being set wins.
        Parameters:
        aTextFormatMode - The TextFormatMode to be used for formating the text.
        Returns:
        This TableBuilder instance to continue configuration.
      • build

        static TableBuilder build​()
        This is a convenience method for easily instantiating the according builder.
        Returns:
        an instance (using a default implementation) of this builder