Class 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.

    Version:
    1.0, 09/24/99
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.String alignment
      The default format string for formatting a single cell value; currently "%G".
      private static java.lang.String[] blanksCache  
      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".
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected AbstractFormatter()
      Makes this class non instantiable, but still let's others inherit from it.
    • Method Summary

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

        private static java.lang.String[] blanksCache
    • 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.