Interface TablePrinter

All Known Implementing Classes:
TableBuilder

public interface TablePrinter
In comparison to the TableBuilder, the TablePrinter just provides the methods required to print a table. This is most useful when you want to create a TablePrinter composite (which encapsulates many TablePrinter instances) which only requires the printing methods as the builder methods would make no sense: Think of a TablePrinter which is used for logging text with a log priority. For each log priority there is a dedicated TablePrinter instance configured slightly different, e.g using different text colors for the printed row depending on the log priority. Those "internal" TablePrinter instances would be pre-configured so that a TableBuilder composite would actually overload the composite with Builder-Pattern functionality which must not be applied to the internal TablePrinter instances. Actually the internal TablePrinter instances would be part (implementation secret) of a TableBuilder instance as them are configured each individually using the Builder-Pattern.
  • Method Details

    • toHeaderBegin

      String toHeaderBegin()
      Begins a header, for convenience reasons, this is being encapsulated by the toHeader(String...) method. Use this method in case you need more control on the header construction than toHeader(String...) can provide you.
      Returns:
      The header's begin String including the line breaks.
    • toHeaderComplete

      default String toHeaderComplete()
      For more semantic clearness this method returns an end-of-header / begin-of-row line, though is equivalent to the method toHeaderBegin().
      Returns:
      The header's end / row's begin String including the line breaks.
    • toHeaderContinue

      String toHeaderContinue(String... aColumns)
      Continues a begun header, for convenience reasons, this is being encapsulated by the toHeader(String...) method. Use this method in case you need more control on the header construction than toHeader(String...) can provide you.
      Parameters:
      aColumns - the columns
      Returns:
      The begun header continued String including the line breaks.
    • toHeaderContinue

      default String toHeaderContinue(List<String> aColumns)
      Continues a begun header, for convenience reasons, this is being encapsulated by the toHeader(String...) method. Use this method in case you need more control on the header construction than toHeader(String...) can provide you.
      Parameters:
      aColumns - the columns
      Returns:
      The begun header continued String including the line breaks.
    • toHeaderEnd

      String toHeaderEnd(TableBuilder aTablePrinter)
      Ends the headers of the provided TableBuilder for this table printer to continue; 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.
      Parameters:
      aTablePrinter - The TableBuilder to which to append this TableBuilder's headers.
      Returns:
      The divider header joining the provided (top) TableBuilder's layout with this (bottom) TableBuilder's layout.
    • toHeaderEnd

      String toHeaderEnd()
      Ends a header, for convenience reasons, this is being encapsulated by the toHeader(String...) method. Use this method in case you need more control on the header construction than toHeader(String...) can provide you.
      Returns:
      The header's end String including the line breaks.
    • toRowBegin

      String toRowBegin()
      Begins a row, for convenience reasons, this is being encapsulated by the toRow(String...) method. Use this method in case you need more control on the row construction than toRow(String...) can provide you.
      Returns:
      The row's begin String including the line breaks.
    • toRowContinue

      String toRowContinue(String... aColumns)
      Continues a begun row, for convenience reasons, this is being encapsulated by the toRow(String...) method. Use this method in case you need more control on the header construction than toRow(String...) can provide you.
      Parameters:
      aColumns - the columns
      Returns:
      The begun row continued String including the line breaks.
    • toRowContinue

      default String toRowContinue(List<String> aColumns)
      Continues a begun row, for convenience reasons, this is being encapsulated by the toRow(String...) method. Use this method in case you need more control on the header construction than toRow(String...) can provide you.
      Parameters:
      aColumns - the columns
      Returns:
      The begun row continued String including the line breaks.
    • toRowEnd

      String toRowEnd(TableBuilder aTablePrinter)
      Ends the rows of the provided TableBuilder for this table printer to continue; 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.
      Parameters:
      aTablePrinter - The TableBuilder to which to append this TableBuilder's rows.
      Returns:
      The divider row joining the provided (top) TableBuilder's layout with this (bottom) TableBuilder's layout.
    • toHeader

      String toHeader(String... aColumns)
      Prints the table's header with the content of the provided columns.
      Parameters:
      aColumns - The columns to be used in the table's header.
      Returns:
      The header String including line breaks as it most probably will consist of more than one line.
    • toHeader

      default String toHeader(List<String> aColumns)
      Prints the table's header with the content of the provided columns.
      Parameters:
      aColumns - The columns to be used in the table's header.
      Returns:
      The header String including line breaks as it most probably will consist of more than one line.
    • toRow

      String toRow(String... aColumns)
      Prints the table's (next) row with the content of the provided columns. Call this method for each row to print out.
      Parameters:
      aColumns - The columns to be used in the (next) table's row.
      Returns:
      The row String including line breaks as it most probably will consist of more than one line.
    • toRow

      default String toRow(List<String> aColumns)
      Prints the table's (next) row with the content of the provided columns. Call this method for each row to print out.
      Parameters:
      aColumns - The columns to be used in the (next) table's row.
      Returns:
      The row String including line breaks as it most probably will consist of more than one line.
    • toTail

      String toTail()
      Finishes off the table by closing it.
      Returns:
      The tail of the table for finishing the table off.
    • printHeaderBegin

      void printHeaderBegin()
      Prints out a header begin to the PrintStream configured for this PrintWriter, for convenience reasons, this is being encapsulated by the printHeader(String...) method. Use this method in case you need more control on the header construction than printHeader(String...) can provide you.
    • printHeaderComplete

      default void printHeaderComplete()
      For more semantic clearness this method prints an end-of-header / begin-of-row line, though is equivalent to the method printHeaderBegin().
    • printHeaderContinue

      void printHeaderContinue(String... aColumns)
      Continues to print out a begun header to the PrintStream configured for this PrintWriter, for convenience reasons, this is being encapsulated by the printHeader(String...) method. Use this method in case you need more control on the header construction than printHeader(String...) can provide you.
      Parameters:
      aColumns - the columns
    • printHeaderContinue

      default void printHeaderContinue(List<String> aColumns)
      Continues to print out a begun header to the PrintStream configured for this PrintWriter, for convenience reasons, this is being encapsulated by the printHeader(String...) method. Use this method in case you need more control on the header construction than printHeader(String...) can provide you.
      Parameters:
      aColumns - the columns
    • printHeaderEnd

      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.
      Parameters:
      aTablePrinter - The TableBuilder to which to append this TableBuilder's headers.
    • printHeaderEnd

      void printHeaderEnd()
      Prints out a header end to the PrintStream configured for this PrintWriter, for convenience reasons, this is being encapsulated by the printHeader(String...) method. Use this method in case you need more control on the header construction than printHeader(String...) can provide you.
    • printRowBegin

      void printRowBegin()
      Prints out a row begin to the PrintStream configured for this PrintWriter, for convenience reasons, this is being encapsulated by the printRow(String...) method. Use this method in case you need more control on the row construction than printRow(String...) can provide you.
    • printRowContinue

      void printRowContinue(String... aColumns)
      Continues a print out begun row to the PrintStream configured for this PrintWriter, for convenience reasons, this is being encapsulated by the printRow(String...) method. Use this method in case you need more control on the header construction than printRow(String...) can provide you.
      Parameters:
      aColumns - the columns
    • printRowContinue

      default void printRowContinue(List<String> aColumns)
      Continues a print out begun row to the PrintStream configured for this PrintWriter, for convenience reasons, this is being encapsulated by the printRow(String...) method. Use this method in case you need more control on the header construction than printRow(String...) can provide you.
      Parameters:
      aColumns - the columns
    • printRowEnd

      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.
      Parameters:
      aTablePrinter - The TableBuilder to which to append this TableBuilder's rows.
    • printHeader

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

      default void printHeader(List<String> aColumns)
      Prints the table's header to the PrintStream configured for this PrintWriter with the content of the provided columns.
      Parameters:
      aColumns - The columns to be used in the table's header.
    • printRow

      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.
      Parameters:
      aColumns - The columns to be used in the (next) table's row.
    • printRow

      default void printRow(List<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.
      Parameters:
      aColumns - The columns to be used in the (next) table's row.
    • printTail

      void printTail()
      Finishes off the table by printing its closing to the PrintStream configured for this PrintWriter.
    • getTableStatus

      TableStatus getTableStatus()
      Retrieves the TablePrinter (TableBuilder) status. The TableStatus is required by a TablePrinter ( TableBuilder) to determine whether to do additional table decoration for a print operation or to fail that operation as of an illegal state exception. As far as possible an illegal state exception is to be tried to be prevented by decorating the table automatically by an operation as of the current TableStatus.
      Returns:
      The table's current TableStatus.
    • setTableStatus

      TablePrinter setTableStatus(TableStatus aTableStatus)
      Set the TablePrinter (TableBuilder) status. The TableStatus is required by a TablePrinter ( TableBuilder) to determine whether to do additional table decoration for a print operation or to fail that operation as of an illegal state exception. As far as possible an illegal state exception is to be tried to be prevented by decorating the table automatically by an operation as of the current TableStatus. Setting the status manually, you can use differently configured TablePrinter interfaces to print their lines according to the status of a previous TablePrinter.
      Parameters:
      aTableStatus - The table's current TableStatus to be set.
      Returns:
      the table printer