Class 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

      Constructors 
      Constructor Description
      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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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.