joptsimple.internal
Class ColumnarData

java.lang.Object
  extended by joptsimple.internal.ColumnarData

public class ColumnarData
extends java.lang.Object

A means to display data in a text grid.

Version:
$Id: ColumnarData.java,v 1.14 2009/03/06 20:35:08 pholser Exp $
Author:
Paul Holser

Field Summary
private  java.util.List<Column> columns
           
private  java.lang.String[] headers
           
private static java.lang.String LINE_SEPARATOR
           
private static int TOTAL_WIDTH
           
private  ColumnWidthCalculator widthCalculator
           
 
Constructor Summary
ColumnarData(java.lang.String... headers)
          Creates a new grid with the given column headers.
 
Method Summary
private  void addPaddingCells(int... numberOfCellsAddedAt)
           
private  void addPaddingCellsForColumn(Column column, int maxHeight, int numberOfCellsAdded)
           
 void addRow(java.lang.Object... rowData)
          Adds a row to the grid.
private  int[] addRowCells(java.lang.Object... rowData)
           
private  int arrayMax(int[] numbers)
           
 void clear()
          Removes all data from the grid, but preserves the headers.
 java.lang.String format()
          Gives a string that represents the data formatted in columns.
private  void writeHeadersOn(java.lang.StringBuilder buffer)
           
private  void writeRowOn(java.lang.StringBuilder buffer, int rowIndex)
           
private  void writeRowsOn(java.lang.StringBuilder buffer)
           
private  void writeSeparatorsOn(java.lang.StringBuilder buffer)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LINE_SEPARATOR

private static final java.lang.String LINE_SEPARATOR

TOTAL_WIDTH

private static final int TOTAL_WIDTH
See Also:
Constant Field Values

widthCalculator

private final ColumnWidthCalculator widthCalculator

columns

private final java.util.List<Column> columns

headers

private final java.lang.String[] headers
Constructor Detail

ColumnarData

public ColumnarData(java.lang.String... headers)
Creates a new grid with the given column headers.

Parameters:
headers - column headers
Method Detail

addRow

public void addRow(java.lang.Object... rowData)
Adds a row to the grid. The data will fall under the corresponding headers. There can be fewer elements in the row than headers. Any data in columns outside of the number of headers will not be added to the grid.

Parameters:
rowData - row data to add

format

public java.lang.String format()
Gives a string that represents the data formatted in columns.

Returns:
the formatted grid

clear

public final void clear()
Removes all data from the grid, but preserves the headers.


writeHeadersOn

private void writeHeadersOn(java.lang.StringBuilder buffer)

writeSeparatorsOn

private void writeSeparatorsOn(java.lang.StringBuilder buffer)

writeRowsOn

private void writeRowsOn(java.lang.StringBuilder buffer)

writeRowOn

private void writeRowOn(java.lang.StringBuilder buffer,
                        int rowIndex)

arrayMax

private int arrayMax(int[] numbers)

addRowCells

private int[] addRowCells(java.lang.Object... rowData)

addPaddingCells

private void addPaddingCells(int... numberOfCellsAddedAt)

addPaddingCellsForColumn

private void addPaddingCellsForColumn(Column column,
                                      int maxHeight,
                                      int numberOfCellsAdded)