Class ObjectTable

  • All Implemented Interfaces:
    Serializable

    public class ObjectTable
    extends Object
    implements Serializable
    A lookup table for objects. This implementation is not synchronized, it is up to the caller to synchronize it properly.
    Author:
    Thomas Morgner
    See Also:
    Serialized Form
    • Constructor Detail

      • ObjectTable

        public ObjectTable()
        Creates a new table.
      • ObjectTable

        public ObjectTable​(int increment)
        Creates a new table.
        Parameters:
        increment - the row and column size increment.
      • ObjectTable

        public ObjectTable​(int rowIncrement,
                           int colIncrement)
        Creates a new table.
        Parameters:
        rowIncrement - the row size increment.
        colIncrement - the column size increment.
    • Method Detail

      • getColumnIncrement

        public int getColumnIncrement()
        Returns the column size increment.
        Returns:
        the increment.
      • getRowIncrement

        public int getRowIncrement()
        Returns the row size increment.
        Returns:
        the increment.
      • ensureRowCapacity

        protected void ensureRowCapacity​(int row)
        Checks that there is storage capacity for the specified row and resizes if necessary.
        Parameters:
        row - the row index.
      • ensureCapacity

        public void ensureCapacity​(int row,
                                   int column)
        Ensures that there is storage capacity for the specified item.
        Parameters:
        row - the row index.
        column - the column index.
      • getRowCount

        public int getRowCount()
        Returns the number of rows in the table.
        Returns:
        The row count.
      • getColumnCount

        public int getColumnCount()
        Returns the number of columns in the table.
        Returns:
        The column count.
      • getObject

        protected Object getObject​(int row,
                                   int column)
        Returns the object from a particular cell in the table. Returns null, if there is no object at the given position.

        Note: throws IndexOutOfBoundsException if row or column is negative.

        Parameters:
        row - the row index (zero-based).
        column - the column index (zero-based).
        Returns:
        The object.
      • setObject

        protected void setObject​(int row,
                                 int column,
                                 Object object)
        Sets the object for a cell in the table. The table is expanded if necessary.
        Parameters:
        row - the row index (zero-based).
        column - the column index (zero-based).
        object - the object.
      • equals

        public boolean equals​(Object o)
        Tests this paint table for equality with another object (typically also an ObjectTable).
        Overrides:
        equals in class Object
        Parameters:
        o - the other object.
        Returns:
        A boolean.
      • hashCode

        public int hashCode()
        Returns a hash code value for the object.
        Overrides:
        hashCode in class Object
        Returns:
        the hashcode
      • writeSerializedData

        protected void writeSerializedData​(ObjectOutputStream stream,
                                           Object o)
                                    throws IOException
        Handles the serialization of an single element of this table.
        Parameters:
        stream - the stream which should write the object
        o - the object that should be serialized
        Throws:
        IOException - if an IO error occured
      • clear

        public void clear()
        Clears the table.
      • copyColumn

        protected void copyColumn​(int oldColumn,
                                  int newColumn)
        Copys the contents of the old column to the new column.
        Parameters:
        oldColumn - the index of the old (source) column
        newColumn - the index of the new column
      • copyRow

        protected void copyRow​(int oldRow,
                               int newRow)
        Copys the contents of the old row to the new row. This uses raw access to the data and is remarkably faster than manual copying.
        Parameters:
        oldRow - the index of the old row
        newRow - the index of the new row
      • setData

        protected void setData​(Object[][] data,
                               int colCount)
        Sets the table data.
        Parameters:
        data - the data.
        colCount - the number of columns.
      • getData

        protected Object[][] getData()
        Returns the table data.
        Returns:
        The table data.