java.lang.Object
org.refcodes.textual.TableBuilder
- All Implemented Interfaces:
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
public class TableBuilder
extends Object
implements 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
TableBuilder
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 preconfigured in order
to start right away; fine-tune your configuration with the provided builder
methods.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.refcodes.mixin.EscapeCodesStatusAccessor
org.refcodes.mixin.EscapeCodesStatusAccessor.EscapeCodeStatusBuilder<B extends org.refcodes.mixin.EscapeCodesStatusAccessor.EscapeCodeStatusBuilder<B>>, org.refcodes.mixin.EscapeCodesStatusAccessor.EscapeCodeStatusMutator, org.refcodes.mixin.EscapeCodesStatusAccessor.EscapeCodeStatusProperty
Nested classes/interfaces inherited from interface org.refcodes.mixin.PrintStreamAccessor
org.refcodes.mixin.PrintStreamAccessor.PrintStreamBuilder<B extends org.refcodes.mixin.PrintStreamAccessor.PrintStreamBuilder<?>>, org.refcodes.mixin.PrintStreamAccessor.PrintStreamMutator, org.refcodes.mixin.PrintStreamAccessor.PrintStreamProperty
Nested classes/interfaces inherited from interface org.refcodes.mixin.ResetEscapeCodeAccessor
org.refcodes.mixin.ResetEscapeCodeAccessor.ResetEscapeCodeBuilder<B extends org.refcodes.mixin.ResetEscapeCodeAccessor.ResetEscapeCodeBuilder<B>>, org.refcodes.mixin.ResetEscapeCodeAccessor.ResetEscapeCodeMutator, org.refcodes.mixin.ResetEscapeCodeAccessor.ResetEscapeCodeProperty
Nested classes/interfaces inherited from interface org.refcodes.mixin.RowWidthAccessor
org.refcodes.mixin.RowWidthAccessor.RowWidthBuilder<B extends org.refcodes.mixin.RowWidthAccessor.RowWidthBuilder<?>>, org.refcodes.mixin.RowWidthAccessor.RowWidthMutator, org.refcodes.mixin.RowWidthAccessor.RowWidthProperty
-
Constructor Summary
ConstructorDescriptionInstantiates a new table builder with the current terminal's width (as ofTerminal.toPreferredTerminalWidth()
).TableBuilder
(int aRowWidth) Initializes theTableBuilder
with the given row width.Instantiates a new table builder using the providedTableBuilder.RowWidthMode
to determine the table's row width.. -
Method Summary
Modifier and TypeMethodDescriptionAdds a column and returns thisTableBuilder
instance as of the Builder-Pattern.addColumn
(int aWidth) Adds a column and returns thisTableBuilder
instance as of the Builder-Pattern.addColumn
(int aWidth, ColumnWidthType aWidthType) Adds a column and returns thisTableBuilder
instance as of the Builder-Pattern.int
Retrieves theTablePrinter
(TableBuilder
) status.boolean
void
printHeader
(String... aColumns) Prints the table's header to thePrintStream
configured for thisPrintWriter
with the content of the provided columns.void
Prints out a header begin to thePrintStream
configured for thisPrintWriter
, for convenience reasons, this is being encapsulated by theTablePrinter.printHeader(String...)
method.void
printHeaderContinue
(String... aColumns) Continues to print out a begun header to thePrintStream
configured for thisPrintWriter
, for convenience reasons, this is being encapsulated by theTablePrinter.printHeader(String...)
method.void
Prints out a header end to thePrintStream
configured for thisPrintWriter
, for convenience reasons, this is being encapsulated by theTablePrinter.printHeader(String...)
method.void
printHeaderEnd
(TableBuilder aTablePrinter) Ends the headers of the providedTableBuilder
for this table printer to continue to thePrintStream
configured for thisPrintWriter
; different header widths and column widths are taken care of, so it is a pleasure to mix differentTableBuilder
s, ehttps://www.metacodes.proly when empty columns may result in better using another column layout making better use of the available width.void
Prints the table's (next) row to thePrintStream
configured for thisPrintWriter
with the content of the provided columns.void
Prints out a row begin to thePrintStream
configured for thisPrintWriter
, for convenience reasons, this is being encapsulated by theTablePrinter.printRow(String...)
method.void
printRowContinue
(String... aColumns) Continues a print out begun row to thePrintStream
configured for thisPrintWriter
, for convenience reasons, this is being encapsulated by theTablePrinter.printRow(String...)
method.void
printRowEnd
(TableBuilder aTablePrinter) Ends the rows of the providedTableBuilder
for this table printer to continue to thePrintStream
configured for thisPrintWriter
; different row widths and column widths are taken care of, so it is a pleasure to mix differentTableBuilder
s, ehttps://www.metacodes.proly when empty columns may result in better using another column layout making better use of the available width.void
Finishes off the table by printing its closing to thePrintStream
configured for thisPrintWriter
.void
setEscapeCodesEnabled
(boolean isEscCodesEnabled) void
setPrintStream
(PrintStream aPrintStream) void
setResetEscapeCode
(String aResetEscCode) void
setRowWidth
(int aRowWidth) In case a value of -1 is provided, then the width is calculated dynamically from the individual columns' widths added together including any borders being specified.setTableStatus
(TableStatus aTableStatus) Set theTablePrinter
(TableBuilder
) status.void
setTableStyle
(TableStyle aTableStyle) Sets theTableStyle
to use when printing.int[]
Returns the currently calculated or configured column widths.Prints the table's header with the content of the provided columns.Begins a header, for convenience reasons, this is being encapsulated by theTablePrinter.toHeader(String...)
method.toHeaderContinue
(String... aColumns) Continues a begun header, for convenience reasons, this is being encapsulated by theTablePrinter.toHeader(String...)
method.Ends a header, for convenience reasons, this is being encapsulated by theTablePrinter.toHeader(String...)
method.toHeaderEnd
(TableBuilder aTablePrinter) Ends the headers of the providedTableBuilder
for this table printer to continue; different header widths and column widths are taken care of, so it is a pleasure to mix differentTableBuilder
s, ehttps://www.metacodes.proly when empty columns may result in better using another column layout making better use of the available width.Prints the table's (next) row with the content of the provided columns.Begins a row, for convenience reasons, this is being encapsulated by theTablePrinter.toRow(String...)
method.toRowContinue
(String... aColumns) Continues a begun row, for convenience reasons, this is being encapsulated by theTablePrinter.toRow(String...)
method.toRowEnd
(TableBuilder aTablePrinter) Ends the rows of the providedTableBuilder
for this table printer to continue; different row widths and column widths are taken care of, so it is a pleasure to mix differentTableBuilder
s, ehttps://www.metacodes.proly when empty columns may result in better using another column layout making better use of the available width.toTail()
Finishes off the table by closing it.withBorderEscapeCode
(String aEscapeCode) Sets an overall ANSI Escape-Code for the borders and returns thisTableBuilder
instance as of the Builder-Pattern.withColumnFormatMetrics
(ColumnFormatMetrics aColumnFormatMetrics) Sets the current column's (the last added one with theaddColumn()
method) format (including the width) and returns thisTableBuilder
instance as of the Builder-Pattern.withColumnHorizAlignTextMode
(HorizAlignTextMode aHorizAlignTextMode) Sets the column's alignment mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withColumnMoreTextMode
(MoreTextMode aMoreTextMode) Sets the column's "more" mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withColumnSplitTextMode
(SplitTextMode aSplitTextMode) Sets the column's line split mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withColumnTextFormatMode
(TextFormatMode aTextFormatMode) Sets the column's format mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withColumnWidth
(int aWidth) Sets the current column's (the last added one with theaddColumn()
method) absolute width () @link ColumnWidthType#ABSOLUTE) and returns thisTableBuilder
instance as of the Builder-Pattern.withColumnWidth
(int aWidth, ColumnWidthType aWidthType) Sets the current column's (the last added one with theaddColumn()
method) width and returns thisTableBuilder
instance as of the Builder-Pattern.withColumnWidthMetrics
(ColumnWidthMetrics aColumnWidthMetrics) Sets the current column's (the last added one with theaddColumn()
method) width and returns thisTableBuilder
instance as of the Builder-Pattern.withDividerLine
(boolean hasDividerLine) Sets whether to print the divider line between the columns of a row and returns thisTableBuilder
instance as of the Builder-Pattern.withEscapeCode
(String aEscapeCode) Sets an overall ANSI Escape-Code for the header, the rows as well as the borders; and returns thisTableBuilder
instance as of the builder pattern.withEscapeCodesEnabled
(boolean isEscCodesEnabled) Sets an overall ANSI Escape-Code support for theTableBuilder
, for the rows as well as the borders; and returns thisTableBuilder
instance as of the Builder-Pattern.withHeaderColumnEscapeCode
(String aEscapeCode) Sets the column's header ANSI Escape-Code for the current header column and returns thisTableBuilder
instance as of the Builder-Pattern.withHeaderColumnHorizAlignTextMode
(HorizAlignTextMode aHorizAlignTextMode) Sets the column's header alignment mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withHeaderColumnMoreTextMode
(MoreTextMode aMoreTextMode) Sets the column's header "more" mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withHeaderColumnSplitTextMode
(SplitTextMode aSplitTextMode) Sets the column's header line split mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withHeaderColumnTextFormatMode
(TextFormatMode aTextFormatMode) Sets the column's header format mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withHeaderEscapeCode
(String aEscapeCode) Sets an overall ANSI Escape-Code for the header and returns thisTableBuilder
instance as of the Builder-Pattern.withHeaderHorizAlignTextMode
(HorizAlignTextMode aHorizAlignTextMode) Sets an overall alignment mode for the header and returns thisTableBuilder
instance as of the Builder-Pattern.withHeaderMoreTextMode
(MoreTextMode aMoreTextMode) Sets an overall "more" mode for the header and returns thisTableBuilder
instance as of the Builder-Pattern.withHeaderSplitTextMode
(SplitTextMode aSplitTextMode) Sets an overall line split mode for the header and returns thisTableBuilder
instance as of the Builder-Pattern.withHeaderTextFormatMode
(TextFormatMode aTextFormatMode) Sets an overall format mode for the header and returns thisTableBuilder
instance as of the Builder-Pattern.withHorizAlignTextMode
(HorizAlignTextMode aHorizAlignTextMode) Sets an overall alignment mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withLeftBorder
(boolean hasLeftBorder) Sets whether to print the left border and returns thisTableBuilder
instance as of the Builder-Pattern.withLineBreak
(String aLineBreak) Sets the required line break and returns thisTableBuilder
instance as of the Builder-Pattern.withMoreTextMode
(MoreTextMode aMoreTextMode) Sets an overall "more" mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withPrintStream
(PrintStream aPrintStream) Sets the print stream to be used when using the print methods of theTableBuilder
and returns thisTableBuilder
instance as of the Builder-Pattern.withResetEscapeCode
(String aEscapeCode) Sets the ANSI reset Escape-Code for thisTableBuilder
instance as of the Builder-Pattern.withRightBorder
(boolean hasRightBorder) Sets whether to print the right border and returns thisTableBuilder
instance as of the Builder-Pattern.withRowColumnEscapeCode
(String aEscapeCode) Sets the column's header ANSI Escape-Code for the current row column and returns thisTableBuilder
instance as of the Builder-Pattern.withRowColumnHorizAlignTextMode
(HorizAlignTextMode aHorizAlignTextMode) Sets the column's header alignment mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withRowColumnMoreTextMode
(MoreTextMode aMoreTextMode) Sets the column's header "more" mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withRowColumnSplitTextMode
(SplitTextMode aSplitTextMode) Sets the column's header line split mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withRowColumnTextFormatMode
(TextFormatMode aTextFormatMode) Sets the column's row format mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withRowEscapeCode
(String aEscapeCode) Sets an overall ANSI Escape-Code for the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withRowHorizAlignTextMode
(HorizAlignTextMode aHorizAlignTextMode) Sets an overall alignment mode for the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withRowMoreTextMode
(MoreTextMode aMoreTextMode) Sets an overall "more" mode for the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withRowSplitTextMode
(SplitTextMode aSplitTextMode) Sets an overall line split mode for the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withRowTextFormatMode
(TextFormatMode aTextFormatMode) Sets an overall format mode for the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withRowWidth
(int aRowWidth) In case a value of -1 is provided, then the width is calculated dynamically from the individual columns' widths added together including any borders being specified.withSplitTextMode
(SplitTextMode aSplitTextMode) Sets an overall line split mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withTableStyle
(TableStyle aTableStyle) Sets theTableStyle
to use when printing and returns thisTableBuilder
instance as of the Builder-Pattern.withTextColumnEscapeCode
(String aEscapeCode) Sets the column's ANSI Escape-Code for the current (header and row) column and returns thisTableBuilder
instance as of the builder pattern.withTextEscapeCode
(String aEscapeCode) Sets an overall ANSI Escape-Code for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.withTextFormatMode
(TextFormatMode aTextFormatMode) Sets an overall format mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.refcodes.mixin.EscapeCodesStatusAccessor.EscapeCodeStatusProperty
letEscapeCodesEnabled
Methods inherited from interface org.refcodes.mixin.PrintStreamAccessor.PrintStreamProperty
letPrintStream
Methods inherited from interface org.refcodes.mixin.ResetEscapeCodeAccessor.ResetEscapeCodeProperty
letResetEscapeCode
Methods inherited from interface org.refcodes.mixin.RowWidthAccessor.RowWidthProperty
letRowWidth
Methods inherited from interface org.refcodes.textual.TablePrinter
printHeader, printHeaderComplete, printHeaderContinue, printRow, printRowContinue, toHeader, toHeaderComplete, toHeaderContinue, toRow, toRowContinue
-
Constructor Details
-
TableBuilder
public TableBuilder()Instantiates a new table builder with the current terminal's width (as ofTerminal.toPreferredTerminalWidth()
). -
TableBuilder
Instantiates a new table builder using the providedTableBuilder.RowWidthMode
to determine the table's row width.. -
TableBuilder
public TableBuilder(int aRowWidth) Initializes theTableBuilder
with the given row width.- Parameters:
aRowWidth
- The row width with which to initialize theTableBuilder
.
-
-
Method Details
-
addColumn
Adds a column and returns thisTableBuilder
instance as of the Builder-Pattern.- Returns:
- This
TableBuilder
instance to continue configuration.
-
addColumn
Adds a column and returns thisTableBuilder
instance as of the Builder-Pattern.- Parameters:
aWidth
- The width for the column.- Returns:
- This
TableBuilder
instance to continue configuration.
-
addColumn
Adds a column and returns thisTableBuilder
instance as of the Builder-Pattern.- Parameters:
aWidth
- The width for the column.aWidthType
- The type the width is of, e.g.ColumnWidthType.RELATIVE
orColumnWidthType.ABSOLUTE
- Returns:
- This
TableBuilder
instance to continue configuration.
-
getPrintStream
- Specified by:
getPrintStream
in interfaceorg.refcodes.mixin.PrintStreamAccessor
-
getResetEscapeCode
- Specified by:
getResetEscapeCode
in interfaceorg.refcodes.mixin.ResetEscapeCodeAccessor
-
getRowWidth
public int getRowWidth()- Specified by:
getRowWidth
in interfaceorg.refcodes.mixin.RowWidthAccessor
-
getTableStatus
Retrieves theTablePrinter
(TableBuilder
) status. TheTableStatus
is required by aTablePrinter
(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 currentTableStatus
.- Specified by:
getTableStatus
in interfaceTablePrinter
- Returns:
- The table's current
TableStatus
.
-
isEscapeCodesEnabled
public boolean isEscapeCodesEnabled()- Specified by:
isEscapeCodesEnabled
in interfaceorg.refcodes.mixin.EscapeCodesStatusAccessor
-
setPrintStream
- Specified by:
setPrintStream
in interfaceorg.refcodes.mixin.PrintStreamAccessor.PrintStreamMutator
-
setResetEscapeCode
- Specified by:
setResetEscapeCode
in interfaceorg.refcodes.mixin.ResetEscapeCodeAccessor.ResetEscapeCodeMutator
-
setRowWidth
public void setRowWidth(int aRowWidth) In case a value of -1 is provided, then the width is calculated dynamically from the individual columns' widths added together including any borders being specified.- Specified by:
setRowWidth
in interfaceorg.refcodes.mixin.RowWidthAccessor.RowWidthMutator
-
setTableStatus
Set theTablePrinter
(TableBuilder
) status. TheTableStatus
is required by aTablePrinter
(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 currentTableStatus
. Setting the status manually, you can use differently configuredTablePrinter
interfaces to print their lines according to the status of a previousTablePrinter
.- Specified by:
setTableStatus
in interfaceTablePrinter
- Parameters:
aTableStatus
- The table's currentTableStatus
to be set.- Returns:
- the table printer
-
toColumnWidths
public 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.
-
toHeader
Prints the table's header with the content of the provided columns.- Specified by:
toHeader
in interfaceTablePrinter
- 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.
-
toHeaderBegin
Begins a header, for convenience reasons, this is being encapsulated by theTablePrinter.toHeader(String...)
method. Use this method in case you need more control on the header construction thanTablePrinter.toHeader(String...)
can provide you.- Specified by:
toHeaderBegin
in interfaceTablePrinter
- Returns:
- The header's begin
String
including the line breaks.
-
toHeaderContinue
Continues a begun header, for convenience reasons, this is being encapsulated by theTablePrinter.toHeader(String...)
method. Use this method in case you need more control on the header construction thanTablePrinter.toHeader(String...)
can provide you.- Specified by:
toHeaderContinue
in interfaceTablePrinter
- Parameters:
aColumns
- the columns- Returns:
- The begun header continued
String
including the line breaks.
-
toHeaderEnd
Ends a header, for convenience reasons, this is being encapsulated by theTablePrinter.toHeader(String...)
method. Use this method in case you need more control on the header construction thanTablePrinter.toHeader(String...)
can provide you.- Specified by:
toHeaderEnd
in interfaceTablePrinter
- Returns:
- The header's end
String
including the line breaks.
-
toHeaderEnd
Ends the headers of the providedTableBuilder
for this table printer to continue; different header widths and column widths are taken care of, so it is a pleasure to mix differentTableBuilder
s, ehttps://www.metacodes.proly when empty columns may result in better using another column layout making better use of the available width.- Specified by:
toHeaderEnd
in interfaceTablePrinter
- Parameters:
aTablePrinter
- TheTableBuilder
to which to append thisTableBuilder
's headers.- Returns:
- The divider header joining the provided (top)
TableBuilder
's layout with this (bottom)TableBuilder
's layout.
-
toRow
Prints the table's (next) row with the content of the provided columns. Call this method for each row to print out.- Specified by:
toRow
in interfaceTablePrinter
- 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.
-
toRowBegin
Begins a row, for convenience reasons, this is being encapsulated by theTablePrinter.toRow(String...)
method. Use this method in case you need more control on the row construction thanTablePrinter.toRow(String...)
can provide you.- Specified by:
toRowBegin
in interfaceTablePrinter
- Returns:
- The row's begin
String
including the line breaks.
-
toRowContinue
Continues a begun row, for convenience reasons, this is being encapsulated by theTablePrinter.toRow(String...)
method. Use this method in case you need more control on the header construction thanTablePrinter.toRow(String...)
can provide you.- Specified by:
toRowContinue
in interfaceTablePrinter
- Parameters:
aColumns
- the columns- Returns:
- The begun row continued
String
including the line breaks.
-
toRowEnd
Ends the rows of the providedTableBuilder
for this table printer to continue; different row widths and column widths are taken care of, so it is a pleasure to mix differentTableBuilder
s, ehttps://www.metacodes.proly when empty columns may result in better using another column layout making better use of the available width.- Specified by:
toRowEnd
in interfaceTablePrinter
- Parameters:
aTablePrinter
- TheTableBuilder
to which to append thisTableBuilder
's rows.- Returns:
- The divider row joining the provided (top)
TableBuilder
's layout with this (bottom)TableBuilder
's layout.
-
toTail
Finishes off the table by closing it.- Specified by:
toTail
in interfaceTablePrinter
- Returns:
- The tail of the table for finishing the table off.
-
withBorderEscapeCode
Sets an overall ANSI Escape-Code for the borders and returns thisTableBuilder
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
- TheString
to be used for ANSI escaping.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withColumnFormatMetrics
public TableBuilder withColumnFormatMetrics(ColumnFormatMetrics aColumnFormatMetrics) throws IllegalStateException Sets the current column's (the last added one with theaddColumn()
method) format (including the width) and returns thisTableBuilder
instance as of the Builder-Pattern.- Parameters:
aColumnFormatMetrics
- The width and theColumnWidthType
(ColumnWidthType.RELATIVE
orColumnWidthType.ABSOLUTE
) of the column as well as the format.- Returns:
- This
TableBuilder
instance to continue configuration. - Throws:
IllegalStateException
- in case there is none column already added.
-
withColumnHorizAlignTextMode
Sets the column's alignment mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest alignment mode being set wins.- Parameters:
aHorizAlignTextMode
- TheHorizAlignTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withColumnMoreTextMode
Sets the column's "more" mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest "more" mode being set wins.- Parameters:
aMoreTextMode
- TheMoreTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withColumnSplitTextMode
Sets the column's line split mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest line split mode being set wins.- Parameters:
aSplitTextMode
- TheSplitTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withColumnTextFormatMode
Sets the column's format mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest format mode being set wins.- Parameters:
aTextFormatMode
- TheTextFormatMode
to be used for formating the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withColumnWidth
Sets the current column's (the last added one with theaddColumn()
method) absolute width () @link ColumnWidthType#ABSOLUTE) and returns thisTableBuilder
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.
-
withColumnWidth
public TableBuilder withColumnWidth(int aWidth, ColumnWidthType aWidthType) throws IllegalStateException Sets the current column's (the last added one with theaddColumn()
method) width and returns thisTableBuilder
instance as of the Builder-Pattern.- Parameters:
aWidth
- The width for the column.aWidthType
- The type the width is of, e.g.ColumnWidthType.RELATIVE
orColumnWidthType.ABSOLUTE
- Returns:
- This
TableBuilder
instance to continue configuration. - Throws:
IllegalStateException
- in case there is none column already added.
-
withColumnWidthMetrics
public TableBuilder withColumnWidthMetrics(ColumnWidthMetrics aColumnWidthMetrics) throws IllegalStateException Sets the current column's (the last added one with theaddColumn()
method) width and returns thisTableBuilder
instance as of the Builder-Pattern.- Parameters:
aColumnWidthMetrics
- The width and theColumnWidthType
(ColumnWidthType.RELATIVE
orColumnWidthType.ABSOLUTE
) of the column.- Returns:
- This
TableBuilder
instance to continue configuration. - Throws:
IllegalStateException
- in case there is none column already added.
-
withEscapeCode
Sets an overall ANSI Escape-Code for the header, the rows as well as the borders; and returns thisTableBuilder
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
- TheString
to be used for ANSI escaping.- Returns:
- This
TableBuilder
instance to continue configuration.
-
setEscapeCodesEnabled
public void setEscapeCodesEnabled(boolean isEscCodesEnabled) - Specified by:
setEscapeCodesEnabled
in interfaceorg.refcodes.mixin.EscapeCodesStatusAccessor.EscapeCodeStatusMutator
-
withHeaderColumnEscapeCode
Sets the column's header ANSI Escape-Code for the current header column and returns thisTableBuilder
instance as of the Builder-Pattern. The latest ANSI Escape-Code being set wins.- Parameters:
aEscapeCode
- TheString
to be used for ANSI escaping.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withHeaderColumnHorizAlignTextMode
Sets the column's header alignment mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest alignment mode being set wins.- Parameters:
aHorizAlignTextMode
- TheHorizAlignTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withHeaderColumnMoreTextMode
Sets the column's header "more" mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest "more" mode being set wins.- Parameters:
aMoreTextMode
- TheMoreTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withHeaderColumnSplitTextMode
Sets the column's header line split mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest line split mode being set wins.- Parameters:
aSplitTextMode
- TheSplitTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withHeaderColumnTextFormatMode
Sets the column's header format mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest format mode being set wins.- Parameters:
aTextFormatMode
- TheTextFormatMode
to be used for formating the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withHeaderEscapeCode
Sets an overall ANSI Escape-Code for the header and returns thisTableBuilder
instance as of the Builder-Pattern. The latest ANSI Escape-Code being set wins.- Parameters:
aEscapeCode
- TheString
to be used for ANSI escaping.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withHeaderHorizAlignTextMode
Sets an overall alignment mode for the header and returns thisTableBuilder
instance as of the Builder-Pattern. The latest alignment mode being set wins.- Parameters:
aHorizAlignTextMode
- TheHorizAlignTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withHeaderMoreTextMode
Sets an overall "more" mode for the header and returns thisTableBuilder
instance as of the Builder-Pattern. The latest "more" mode being set wins.- Parameters:
aMoreTextMode
- TheMoreTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withHeaderSplitTextMode
Sets an overall line split mode for the header and returns thisTableBuilder
instance as of the Builder-Pattern. The latest line split mode being set wins.- Parameters:
aSplitTextMode
- TheSplitTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withHeaderTextFormatMode
Sets an overall format mode for the header and returns thisTableBuilder
instance as of the Builder-Pattern. The latest format mode being set wins.- Parameters:
aTextFormatMode
- TheTextFormatMode
to be used for formating the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withHorizAlignTextMode
Sets an overall alignment mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest alignment mode being set wins.- Parameters:
aHorizAlignTextMode
- TheHorizAlignTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withLeftBorder
Sets whether to print the left border and returns thisTableBuilder
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
Sets the required line break and returns thisTableBuilder
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
Sets an overall "more" mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest "more" mode being set wins.- Parameters:
aMoreTextMode
- TheMoreTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withResetEscapeCode
Sets the ANSI reset Escape-Code for thisTableBuilder
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 interfaceorg.refcodes.mixin.ResetEscapeCodeAccessor.ResetEscapeCodeBuilder<TableBuilder>
- Parameters:
aEscapeCode
- TheString
to be used for resetting ANSI escaping.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withRightBorder
Sets whether to print the right border and returns thisTableBuilder
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
Sets whether to print the divider line between the columns of a row and returns thisTableBuilder
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
Sets the column's header ANSI Escape-Code for the current row column and returns thisTableBuilder
instance as of the Builder-Pattern. The latest ANSI Escape-Code being set wins.- Parameters:
aEscapeCode
- TheString
to be used for ANSI escaping.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withRowColumnHorizAlignTextMode
Sets the column's header alignment mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest alignment mode being set wins.- Parameters:
aHorizAlignTextMode
- TheHorizAlignTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withRowColumnMoreTextMode
Sets the column's header "more" mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest "more" mode being set wins.- Parameters:
aMoreTextMode
- TheMoreTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withRowColumnSplitTextMode
Sets the column's header line split mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest line split mode being set wins.- Parameters:
aSplitTextMode
- TheSplitTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withRowColumnTextFormatMode
Sets the column's row format mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest format mode being set wins.- Parameters:
aTextFormatMode
- TheTextFormatMode
to be used for formating the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withRowEscapeCode
Sets an overall ANSI Escape-Code for the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest ANSI Escape-Code being set wins.- Parameters:
aEscapeCode
- TheString
to be used for ANSI escaping.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withRowHorizAlignTextMode
Sets an overall alignment mode for the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest alignment mode being set wins.- Parameters:
aHorizAlignTextMode
- TheHorizAlignTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withRowMoreTextMode
Sets an overall "more" mode for the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest "more" mode being set wins.- Parameters:
aMoreTextMode
- TheMoreTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withRowSplitTextMode
Sets an overall line split mode for the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest line split mode being set wins.- Parameters:
aSplitTextMode
- TheSplitTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withRowTextFormatMode
Sets an overall format mode for the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest format mode being set wins.- Parameters:
aTextFormatMode
- TheTextFormatMode
to be used for formating the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withRowWidth
In case a value of -1 is provided, then the width is calculated dynamically from the individual columns' widths added together including any borders being specified.- Specified by:
withRowWidth
in interfaceorg.refcodes.mixin.RowWidthAccessor.RowWidthBuilder<TableBuilder>
-
withSplitTextMode
Sets an overall line split mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest line split mode being set wins.- Parameters:
aSplitTextMode
- TheSplitTextMode
to be used for aligning the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withTableStyle
Sets theTableStyle
to use when printing and returns thisTableBuilder
instance as of the Builder-Pattern.- Parameters:
aTableStyle
- TheTableStyle
defining the tables style to be used when printing the table borders.- Returns:
- This
TableBuilder
instance to continue configuration.
-
setTableStyle
Sets theTableStyle
to use when printing.- Parameters:
aTableStyle
- TheTableStyle
defining the tables style to be used when printing the table borders.
-
withTextColumnEscapeCode
Sets the column's ANSI Escape-Code for the current (header and row) column and returns thisTableBuilder
instance as of the builder pattern. The latest ANSI Escape-Code being set wins.- Parameters:
aEscapeCode
- TheString
to be used for ANSI escaping.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withTextEscapeCode
Sets an overall ANSI Escape-Code for the header and the rows and returns thisTableBuilder
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
- TheString
to be used for ANSI escaping.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withTextFormatMode
Sets an overall format mode for the header and the rows and returns thisTableBuilder
instance as of the Builder-Pattern. The latest format mode being set wins.- Parameters:
aTextFormatMode
- TheTextFormatMode
to be used for formating the text.- Returns:
- This
TableBuilder
instance to continue configuration.
-
printHeader
Prints the table's header to thePrintStream
configured for thisPrintWriter
with the content of the provided columns.- Specified by:
printHeader
in interfaceTablePrinter
- Parameters:
aColumns
- The columns to be used in the table's header.
-
printHeaderBegin
public void printHeaderBegin()Prints out a header begin to thePrintStream
configured for thisPrintWriter
, for convenience reasons, this is being encapsulated by theTablePrinter.printHeader(String...)
method. Use this method in case you need more control on the header construction thanTablePrinter.printHeader(String...)
can provide you.- Specified by:
printHeaderBegin
in interfaceTablePrinter
-
printHeaderContinue
Continues to print out a begun header to thePrintStream
configured for thisPrintWriter
, for convenience reasons, this is being encapsulated by theTablePrinter.printHeader(String...)
method. Use this method in case you need more control on the header construction thanTablePrinter.printHeader(String...)
can provide you.- Specified by:
printHeaderContinue
in interfaceTablePrinter
- Parameters:
aColumns
- the columns
-
printHeaderEnd
public void printHeaderEnd()Prints out a header end to thePrintStream
configured for thisPrintWriter
, for convenience reasons, this is being encapsulated by theTablePrinter.printHeader(String...)
method. Use this method in case you need more control on the header construction thanTablePrinter.printHeader(String...)
can provide you.- Specified by:
printHeaderEnd
in interfaceTablePrinter
-
printHeaderEnd
Ends the headers of the providedTableBuilder
for this table printer to continue to thePrintStream
configured for thisPrintWriter
; different header widths and column widths are taken care of, so it is a pleasure to mix differentTableBuilder
s, ehttps://www.metacodes.proly when empty columns may result in better using another column layout making better use of the available width.- Specified by:
printHeaderEnd
in interfaceTablePrinter
- Parameters:
aTablePrinter
- TheTableBuilder
to which to append thisTableBuilder
's headers.
-
printRow
Prints the table's (next) row to thePrintStream
configured for thisPrintWriter
with the content of the provided columns. Call this method for each row to print out.- Specified by:
printRow
in interfaceTablePrinter
- Parameters:
aColumns
- The columns to be used in the (next) table's row.
-
printRowBegin
public void printRowBegin()Prints out a row begin to thePrintStream
configured for thisPrintWriter
, for convenience reasons, this is being encapsulated by theTablePrinter.printRow(String...)
method. Use this method in case you need more control on the row construction thanTablePrinter.printRow(String...)
can provide you.- Specified by:
printRowBegin
in interfaceTablePrinter
-
printRowContinue
Continues a print out begun row to thePrintStream
configured for thisPrintWriter
, for convenience reasons, this is being encapsulated by theTablePrinter.printRow(String...)
method. Use this method in case you need more control on the header construction thanTablePrinter.printRow(String...)
can provide you.- Specified by:
printRowContinue
in interfaceTablePrinter
- Parameters:
aColumns
- the columns
-
printRowEnd
Ends the rows of the providedTableBuilder
for this table printer to continue to thePrintStream
configured for thisPrintWriter
; different row widths and column widths are taken care of, so it is a pleasure to mix differentTableBuilder
s, ehttps://www.metacodes.proly when empty columns may result in better using another column layout making better use of the available width.- Specified by:
printRowEnd
in interfaceTablePrinter
- Parameters:
aTablePrinter
- TheTableBuilder
to which to append thisTableBuilder
's rows.
-
printTail
public void printTail()Finishes off the table by printing its closing to thePrintStream
configured for thisPrintWriter
.- Specified by:
printTail
in interfaceTablePrinter
-
withEscapeCodesEnabled
Sets an overall ANSI Escape-Code support for theTableBuilder
, for the rows as well as the borders; and returns thisTableBuilder
instance as of the Builder-Pattern. In case of being set toBoolean.FALSE
, then an ANSI support is disabled altogether, else it is enabled (again, if already configured). The latest setting wins.- Specified by:
withEscapeCodesEnabled
in interfaceorg.refcodes.mixin.EscapeCodesStatusAccessor.EscapeCodeStatusBuilder<TableBuilder>
- Parameters:
isEscCodesEnabled
- True to enable, false to disable Escape-Code support altogether.- Returns:
- This
TableBuilder
instance to continue configuration.
-
withPrintStream
Sets the print stream to be used when using the print methods of theTableBuilder
and returns thisTableBuilder
instance as of the Builder-Pattern.- Specified by:
withPrintStream
in interfaceorg.refcodes.mixin.PrintStreamAccessor.PrintStreamBuilder<TableBuilder>
- Parameters:
aPrintStream
- ThePrintStream
to be used when printing out the table.- Returns:
- This
TableBuilder
instance to continue configuration.
-