Class KeyedObjects2D

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable

    public class KeyedObjects2D
    extends java.lang.Object
    implements java.lang.Cloneable, java.io.Serializable
    A data structure that stores zero, one or many objects, where each object is associated with two keys (a 'row' key and a 'column' key).
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.List columnKeys
      The column keys.
      private java.util.List rowKeys
      The row keys.
      private java.util.List rows
      The row data.
      private static long serialVersionUID
      For serialization.
    • Constructor Summary

      Constructors 
      Constructor Description
      KeyedObjects2D()
      Creates a new instance (initially empty).
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addObject​(java.lang.Object object, java.lang.Comparable rowKey, java.lang.Comparable columnKey)
      Adds an object to the table.
      void clear()
      Clears all the data and associated keys.
      java.lang.Object clone()
      Returns a clone.
      boolean equals​(java.lang.Object obj)
      Tests this object for equality with an arbitrary object.
      int getColumnCount()
      Returns the column count.
      int getColumnIndex​(java.lang.Comparable key)
      Returns the column index for a given key, or -1 if the key is not recognised.
      java.lang.Comparable getColumnKey​(int column)
      Returns the key for a given column.
      java.util.List getColumnKeys()
      Returns the column keys.
      java.lang.Object getObject​(int row, int column)
      Returns the object for a given row and column.
      java.lang.Object getObject​(java.lang.Comparable rowKey, java.lang.Comparable columnKey)
      Returns the object for the given row and column keys.
      int getRowCount()
      Returns the row count.
      int getRowIndex​(java.lang.Comparable key)
      Returns the row index for a given key, or -1 if the key is not recognised.
      java.lang.Comparable getRowKey​(int row)
      Returns the key for a given row.
      java.util.List getRowKeys()
      Returns the row keys.
      int hashCode()
      Returns a hashcode for this object.
      void removeColumn​(int columnIndex)
      Removes an entire column from the table.
      void removeColumn​(java.lang.Comparable columnKey)
      Removes an entire column from the table.
      void removeObject​(java.lang.Comparable rowKey, java.lang.Comparable columnKey)
      Removes an object from the table by setting it to null.
      void removeRow​(int rowIndex)
      Removes an entire row from the table.
      void removeRow​(java.lang.Comparable rowKey)
      Removes an entire row from the table.
      void setObject​(java.lang.Object object, java.lang.Comparable rowKey, java.lang.Comparable columnKey)
      Adds or updates an object.
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • serialVersionUID

        private static final long serialVersionUID
        For serialization.
        See Also:
        Constant Field Values
      • rowKeys

        private java.util.List rowKeys
        The row keys.
      • columnKeys

        private java.util.List columnKeys
        The column keys.
      • rows

        private java.util.List rows
        The row data.
    • Constructor Detail

      • KeyedObjects2D

        public KeyedObjects2D()
        Creates a new instance (initially empty).
    • Method Detail

      • getRowCount

        public int getRowCount()
        Returns the row count.
        Returns:
        The row count.
        See Also:
        getColumnCount()
      • getColumnCount

        public int getColumnCount()
        Returns the column count.
        Returns:
        The column count.
        See Also:
        getRowCount()
      • getObject

        public java.lang.Object getObject​(int row,
                                          int column)
        Returns the object for a given row and column.
        Parameters:
        row - the row index (in the range 0 to getRowCount() - 1).
        column - the column index (in the range 0 to getColumnCount() - 1).
        Returns:
        The object (possibly null).
        See Also:
        getObject(Comparable, Comparable)
      • getRowKey

        public java.lang.Comparable getRowKey​(int row)
        Returns the key for a given row.
        Parameters:
        row - the row index (zero based).
        Returns:
        The row index.
        See Also:
        getRowIndex(Comparable)
      • getRowIndex

        public int getRowIndex​(java.lang.Comparable key)
        Returns the row index for a given key, or -1 if the key is not recognised.
        Parameters:
        key - the key (null not permitted).
        Returns:
        The row index.
        See Also:
        getRowKey(int)
      • getRowKeys

        public java.util.List getRowKeys()
        Returns the row keys.
        Returns:
        The row keys (never null).
        See Also:
        getRowKeys()
      • getColumnKey

        public java.lang.Comparable getColumnKey​(int column)
        Returns the key for a given column.
        Parameters:
        column - the column.
        Returns:
        The key.
        See Also:
        getColumnIndex(Comparable)
      • getColumnIndex

        public int getColumnIndex​(java.lang.Comparable key)
        Returns the column index for a given key, or -1 if the key is not recognised.
        Parameters:
        key - the key (null not permitted).
        Returns:
        The column index.
        See Also:
        getColumnKey(int)
      • getColumnKeys

        public java.util.List getColumnKeys()
        Returns the column keys.
        Returns:
        The column keys (never null).
        See Also:
        getRowKeys()
      • getObject

        public java.lang.Object getObject​(java.lang.Comparable rowKey,
                                          java.lang.Comparable columnKey)
        Returns the object for the given row and column keys.
        Parameters:
        rowKey - the row key (null not permitted).
        columnKey - the column key (null not permitted).
        Returns:
        The object (possibly null).
        Throws:
        java.lang.IllegalArgumentException - if rowKey or columnKey is null.
        UnknownKeyException - if rowKey or columnKey is not recognised.
      • addObject

        public void addObject​(java.lang.Object object,
                              java.lang.Comparable rowKey,
                              java.lang.Comparable columnKey)
        Adds an object to the table. Performs the same function as setObject().
        Parameters:
        object - the object.
        rowKey - the row key (null not permitted).
        columnKey - the column key (null not permitted).
      • setObject

        public void setObject​(java.lang.Object object,
                              java.lang.Comparable rowKey,
                              java.lang.Comparable columnKey)
        Adds or updates an object.
        Parameters:
        object - the object.
        rowKey - the row key (null not permitted).
        columnKey - the column key (null not permitted).
      • removeObject

        public void removeObject​(java.lang.Comparable rowKey,
                                 java.lang.Comparable columnKey)
        Removes an object from the table by setting it to null. If all the objects in the specified row and/or column are now null, the row and/or column is removed from the table.
        Parameters:
        rowKey - the row key (null not permitted).
        columnKey - the column key (null not permitted).
        See Also:
        addObject(Object, Comparable, Comparable)
      • removeRow

        public void removeRow​(int rowIndex)
        Removes an entire row from the table.
        Parameters:
        rowIndex - the row index.
        See Also:
        removeColumn(int)
      • removeRow

        public void removeRow​(java.lang.Comparable rowKey)
        Removes an entire row from the table.
        Parameters:
        rowKey - the row key (null not permitted).
        Throws:
        UnknownKeyException - if rowKey is not recognised.
        See Also:
        removeColumn(Comparable)
      • removeColumn

        public void removeColumn​(int columnIndex)
        Removes an entire column from the table.
        Parameters:
        columnIndex - the column index.
        See Also:
        removeRow(int)
      • removeColumn

        public void removeColumn​(java.lang.Comparable columnKey)
        Removes an entire column from the table.
        Parameters:
        columnKey - the column key (null not permitted).
        Throws:
        UnknownKeyException - if rowKey is not recognised.
        See Also:
        removeRow(Comparable)
      • clear

        public void clear()
        Clears all the data and associated keys.
      • equals

        public boolean equals​(java.lang.Object obj)
        Tests this object for equality with an arbitrary object.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - the object to test (null permitted).
        Returns:
        A boolean.
      • hashCode

        public int hashCode()
        Returns a hashcode for this object.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        A hashcode.
      • clone

        public java.lang.Object clone()
                               throws java.lang.CloneNotSupportedException
        Returns a clone.
        Overrides:
        clone in class java.lang.Object
        Returns:
        A clone.
        Throws:
        java.lang.CloneNotSupportedException - this class will not throw this exception, but subclasses (if any) might.