cern.colt.matrix.impl
Class AbstractFormatter

java.lang.Object
  extended by cern.colt.PersistentObject
      extended by cern.colt.matrix.impl.AbstractFormatter
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable
Direct Known Subclasses:
Formatter, Formatter

public abstract class AbstractFormatter
extends PersistentObject

Abstract base class for flexible, well human readable matrix print formatting. Value type independent. A single cell is formatted via a format string. Columns can be aligned left, centered, right and by decimal point.

A column can be broader than specified by the parameter minColumnWidth (because a cell may not fit into that width) but a column is never smaller than minColumnWidth. Normally one does not need to specify minColumnWidth. Cells in a row are separated by a separator string, similar separators can be set for rows and slices. For more info, see the concrete subclasses.

Author:
wolfgang.hoschek@cern.ch
See Also:
Serialized Form

Field Summary
protected  java.lang.String alignment
          The default format string for formatting a single cell value; currently "%G".
static java.lang.String CENTER
          The alignment string aligning the cells of a column to its center.
protected  java.lang.String columnSeparator
          The default string separating any two columns from another; currently " ".
static java.lang.String DECIMAL
          The alignment string aligning the cells of a column to the decimal point.
static java.lang.String DEFAULT_COLUMN_SEPARATOR
          The default string separating any two columns from another; currently " ".
static int DEFAULT_MIN_COLUMN_WIDTH
          The default minimum number of characters a column may have; currently 1.
static java.lang.String DEFAULT_ROW_SEPARATOR
          The default string separating any two rows from another; currently "\n".
static java.lang.String DEFAULT_SLICE_SEPARATOR
          The default string separating any two slices from another; currently "\n\n".
protected static FormerFactory factory
           
protected  java.lang.String format
          The default format string for formatting a single cell value; currently "%G".
static java.lang.String LEFT
          The alignment string aligning the cells of a column to the left.
protected  int minColumnWidth
          The default minimum number of characters a column may have; currently 1.
protected  boolean printShape
          Tells whether String representations are to be preceded with summary of the shape; currently true.
static java.lang.String RIGHT
          The alignment string aligning the cells of a column to the right.
protected  java.lang.String rowSeparator
          The default string separating any two rows from another; currently "\n".
protected  java.lang.String sliceSeparator
          The default string separating any two slices from another; currently "\n\n".
 
Fields inherited from class cern.colt.PersistentObject
serialVersionUID
 
Constructor Summary
protected AbstractFormatter()
          Makes this class non instantiable, but still let's others inherit from it.
 
Method Summary
protected  void align(java.lang.String[][] strings)
          Modifies the strings in a column of the string matrix to be aligned (left,centered,right,decimal).
protected  int alignmentCode(java.lang.String alignment)
          Converts a row into a string.
protected  void alignRow(java.lang.String[] row, int[] maxColWidth, int[] maxColLead)
          Modifies the strings the string matrix to be aligned (left,centered,right,decimal).
protected  java.lang.String blanks(int length)
          Returns a String with length blanks.
static void demo1()
          Demonstrates how to use this class.
static void demo2()
          Demonstrates how to use this class.
static void demo3(int size, java.lang.Object value)
          Demonstrates how to use this class.
protected abstract  java.lang.String form(AbstractMatrix1D matrix, int index, Former formatter)
          Converts a given cell to a String; no alignment considered.
protected abstract  java.lang.String[][] format(AbstractMatrix2D matrix)
          Returns a string representations of all cells; no alignment considered.
protected  java.lang.String[] formatRow(AbstractMatrix1D vector)
          Returns a string representations of all cells; no alignment considered.
protected  int lead(java.lang.String s)
          Returns the number of characters or the number of characters before the decimal point.
protected  java.lang.String repeat(char character, int length)
          Returns a String with the given character repeated length times.
 void setAlignment(java.lang.String alignment)
          Sets the column alignment (left,center,right,decimal).
 void setColumnSeparator(java.lang.String columnSeparator)
          Sets the string separating any two columns from another.
 void setFormat(java.lang.String format)
          Sets the way a single cell value is to be formatted.
 void setMinColumnWidth(int minColumnWidth)
          Sets the minimum number of characters a column may have.
 void setPrintShape(boolean printShape)
          Specifies whether a string representation of a matrix is to be preceded with a summary of its shape.
 void setRowSeparator(java.lang.String rowSeparator)
          Sets the string separating any two rows from another.
 void setSliceSeparator(java.lang.String sliceSeparator)
          Sets the string separating any two slices from another.
protected static void setupBlanksCache()
          Cache for faster string processing.
static java.lang.String shape(AbstractMatrix1D matrix)
          Returns a short string representation describing the shape of the matrix.
static java.lang.String shape(AbstractMatrix2D matrix)
          Returns a short string representation describing the shape of the matrix.
static java.lang.String shape(AbstractMatrix3D matrix)
          Returns a short string representation describing the shape of the matrix.
protected  java.lang.String toString(AbstractMatrix2D matrix)
          Returns a string representation of the given matrix.
protected  java.lang.String toString(java.lang.String[][] strings)
          Returns a single string representation of the given string matrix.
 
Methods inherited from class cern.colt.PersistentObject
clone
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LEFT

public static final java.lang.String LEFT
The alignment string aligning the cells of a column to the left.

See Also:
Constant Field Values

CENTER

public static final java.lang.String CENTER
The alignment string aligning the cells of a column to its center.

See Also:
Constant Field Values

RIGHT

public static final java.lang.String RIGHT
The alignment string aligning the cells of a column to the right.

See Also:
Constant Field Values

DECIMAL

public static final java.lang.String DECIMAL
The alignment string aligning the cells of a column to the decimal point.

See Also:
Constant Field Values

DEFAULT_MIN_COLUMN_WIDTH

public static final int DEFAULT_MIN_COLUMN_WIDTH
The default minimum number of characters a column may have; currently 1.

See Also:
Constant Field Values

DEFAULT_COLUMN_SEPARATOR

public static final java.lang.String DEFAULT_COLUMN_SEPARATOR
The default string separating any two columns from another; currently " ".

See Also:
Constant Field Values

DEFAULT_ROW_SEPARATOR

public static final java.lang.String DEFAULT_ROW_SEPARATOR
The default string separating any two rows from another; currently "\n".

See Also:
Constant Field Values

DEFAULT_SLICE_SEPARATOR

public static final java.lang.String DEFAULT_SLICE_SEPARATOR
The default string separating any two slices from another; currently "\n\n".

See Also:
Constant Field Values

alignment

protected java.lang.String alignment
The default format string for formatting a single cell value; currently "%G".


format

protected java.lang.String format
The default format string for formatting a single cell value; currently "%G".


minColumnWidth

protected int minColumnWidth
The default minimum number of characters a column may have; currently 1.


columnSeparator

protected java.lang.String columnSeparator
The default string separating any two columns from another; currently " ".


rowSeparator

protected java.lang.String rowSeparator
The default string separating any two rows from another; currently "\n".


sliceSeparator

protected java.lang.String sliceSeparator
The default string separating any two slices from another; currently "\n\n".


printShape

protected boolean printShape
Tells whether String representations are to be preceded with summary of the shape; currently true.


factory

protected static final FormerFactory factory
Constructor Detail

AbstractFormatter

protected AbstractFormatter()
Makes this class non instantiable, but still let's others inherit from it.

Method Detail

align

protected void align(java.lang.String[][] strings)
Modifies the strings in a column of the string matrix to be aligned (left,centered,right,decimal).


alignmentCode

protected int alignmentCode(java.lang.String alignment)
Converts a row into a string.


alignRow

protected void alignRow(java.lang.String[] row,
                        int[] maxColWidth,
                        int[] maxColLead)
Modifies the strings the string matrix to be aligned (left,centered,right,decimal).


blanks

protected java.lang.String blanks(int length)
Returns a String with length blanks.


demo1

public static void demo1()
Demonstrates how to use this class.


demo2

public static void demo2()
Demonstrates how to use this class.


demo3

public static void demo3(int size,
                         java.lang.Object value)
Demonstrates how to use this class.


form

protected abstract java.lang.String form(AbstractMatrix1D matrix,
                                         int index,
                                         Former formatter)
Converts a given cell to a String; no alignment considered.


format

protected abstract java.lang.String[][] format(AbstractMatrix2D matrix)
Returns a string representations of all cells; no alignment considered.


formatRow

protected java.lang.String[] formatRow(AbstractMatrix1D vector)
Returns a string representations of all cells; no alignment considered.


lead

protected int lead(java.lang.String s)
Returns the number of characters or the number of characters before the decimal point.


repeat

protected java.lang.String repeat(char character,
                                  int length)
Returns a String with the given character repeated length times.


setAlignment

public void setAlignment(java.lang.String alignment)
Sets the column alignment (left,center,right,decimal).

Parameters:
alignment - the new alignment to be used; must be one of {LEFT,CENTER,RIGHT,DECIMAL}.

setColumnSeparator

public void setColumnSeparator(java.lang.String columnSeparator)
Sets the string separating any two columns from another.

Parameters:
columnSeparator - the new columnSeparator to be used.

setFormat

public void setFormat(java.lang.String format)
Sets the way a single cell value is to be formatted.

Parameters:
format - the new format to be used.

setMinColumnWidth

public void setMinColumnWidth(int minColumnWidth)
Sets the minimum number of characters a column may have.

Parameters:
minColumnWidth - the new minColumnWidth to be used.

setPrintShape

public void setPrintShape(boolean printShape)
Specifies whether a string representation of a matrix is to be preceded with a summary of its shape.

Parameters:
printShape - true shape summary is printed, otherwise not printed.

setRowSeparator

public void setRowSeparator(java.lang.String rowSeparator)
Sets the string separating any two rows from another.

Parameters:
rowSeparator - the new rowSeparator to be used.

setSliceSeparator

public void setSliceSeparator(java.lang.String sliceSeparator)
Sets the string separating any two slices from another.

Parameters:
sliceSeparator - the new sliceSeparator to be used.

setupBlanksCache

protected static void setupBlanksCache()
Cache for faster string processing.


shape

public static java.lang.String shape(AbstractMatrix1D matrix)
Returns a short string representation describing the shape of the matrix.


shape

public static java.lang.String shape(AbstractMatrix2D matrix)
Returns a short string representation describing the shape of the matrix.


shape

public static java.lang.String shape(AbstractMatrix3D matrix)
Returns a short string representation describing the shape of the matrix.


toString

protected java.lang.String toString(java.lang.String[][] strings)
Returns a single string representation of the given string matrix.

Parameters:
strings - the matrix to be converted to a single string.

toString

protected java.lang.String toString(AbstractMatrix2D matrix)
Returns a string representation of the given matrix.

Parameters:
matrix - the matrix to convert.