com.unboundid.util
Class ColumnFormatter

java.lang.Object
  extended by com.unboundid.util.ColumnFormatter
All Implemented Interfaces:
java.io.Serializable

@NotMutable
@ThreadSafety(level=NOT_THREADSAFE)
public final class ColumnFormatter
extends java.lang.Object
implements java.io.Serializable

This class provides a utility for formatting output in multiple columns. Each column will have a defined width and alignment. It can alternately generate output as tab-delimited text or comma-separated values (CSV).

See Also:
Serialized Form

Constructor Summary
ColumnFormatter(boolean includeTimestamp, java.lang.String timestampFormat, OutputFormat outputFormat, java.lang.String spacer, FormattableColumn... columns)
          Creates a column formatter that will format the provided columns.
ColumnFormatter(FormattableColumn... columns)
          Creates a column formatter that will format the provided columns with the default settings.
 
Method Summary
 java.lang.String formatRow(java.lang.Object... columnData)
          Formats a row of data.
 FormattableColumn[] getColumns()
          Retrieves the set of columns for this formatter.
 java.lang.String[] getHeaderLines(boolean includeDashes)
          Obtains the lines that should comprise the column headers.
 OutputFormat getOutputFormat()
          Retrieves the output format that will be used.
 java.lang.String getSpacer()
          Retrieves the spacer that will be used between columns.
 java.lang.String getTimestampFormatString()
          Retrieves the format string that will be used for generating timestamps.
 boolean includeTimestamps()
          Indicates whether timestamps will be included in the output.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ColumnFormatter

public ColumnFormatter(FormattableColumn... columns)
Creates a column formatter that will format the provided columns with the default settings.

Parameters:
columns - The columns to be formatted. At least one column must be provided.

ColumnFormatter

public ColumnFormatter(boolean includeTimestamp,
                       java.lang.String timestampFormat,
                       OutputFormat outputFormat,
                       java.lang.String spacer,
                       FormattableColumn... columns)
Creates a column formatter that will format the provided columns.

Parameters:
includeTimestamp - Indicates whether to insert a timestamp before the first column when generating data lines
timestampFormat - The format string to use for the timestamp. It may be null if no timestamp should be included or the default format should be used. If a format is provided, then it should be one that will always generate timestamps with a constant width.
outputFormat - The output format to use.
spacer - The spacer to use between columns. It may be null if the default spacer should be used. This will only apply for an output format of COLUMNS.
columns - The columns to be formatted. At least one column must be provided.
Method Detail

includeTimestamps

public boolean includeTimestamps()
Indicates whether timestamps will be included in the output.

Returns:
true if timestamps should be included, or false if not.

getTimestampFormatString

public java.lang.String getTimestampFormatString()
Retrieves the format string that will be used for generating timestamps.

Returns:
The format string that will be used for generating timestamps.

getOutputFormat

public OutputFormat getOutputFormat()
Retrieves the output format that will be used.

Returns:
The output format for this formatter.

getSpacer

public java.lang.String getSpacer()
Retrieves the spacer that will be used between columns.

Returns:
The spacer that will be used between columns.

getColumns

public FormattableColumn[] getColumns()
Retrieves the set of columns for this formatter.

Returns:
The set of columns for this formatter.

getHeaderLines

public java.lang.String[] getHeaderLines(boolean includeDashes)
Obtains the lines that should comprise the column headers.

Parameters:
includeDashes - Indicates whether to include a row of dashes below the headers if appropriate for the output format.
Returns:
The lines that should comprise the column headers.

formatRow

public java.lang.String formatRow(java.lang.Object... columnData)
Formats a row of data. The provided data must correspond to the columns used when creating this formatter.

Parameters:
columnData - The elements to include in each row of the data.
Returns:
A string containing the formatted row.