Class ColumnData

  • Direct Known Subclasses:
    ArrayColumn, BlankColumn, ConstantColumn, WrapperColumn

    public abstract class ColumnData
    extends java.lang.Object
    A column which can supply and possibly store cells in array-like storage as well as supply column metadata. Note there is nothing in this class which describes the number of elements it contains (length of the column). Columns are intended to be managed by tables, and it is the table which should keep track of this information.
    Author:
    Mark Taylor (Starlink)
    • Constructor Summary

      Constructors 
      Constructor Description
      ColumnData()
      Constructs a new ColumnData with no metadata.
      ColumnData​(ColumnInfo colinfo)
      Constructs a new ColumnData with metadata supplied by a given ColumnInfo object.
      ColumnData​(ValueInfo base)
      Performs ColumnData initialisation based on template ValueInfo object.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      ColumnInfo getColumnInfo()
      Returns the ColumnInfo which provides the metadata for this column.
      boolean isWritable()
      Indicates whether this object can store values.
      abstract java.lang.Object readValue​(long irow)
      Returns the value stored at a given row in this column.
      void setColumnInfo​(ColumnInfo colinfo)
      Sets the ColumnInfo which provides the metadata for this column.
      void storeValue​(long irow, java.lang.Object val)
      Stores a given value in a given row for this column.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ColumnData

        public ColumnData()
        Constructs a new ColumnData with no metadata.
      • ColumnData

        public ColumnData​(ColumnInfo colinfo)
        Constructs a new ColumnData with metadata supplied by a given ColumnInfo object.
        Parameters:
        colinfo - the column metadata
      • ColumnData

        public ColumnData​(ValueInfo base)
        Performs ColumnData initialisation based on template ValueInfo object.
        Parameters:
        base - template
    • Method Detail

      • getColumnInfo

        public ColumnInfo getColumnInfo()
        Returns the ColumnInfo which provides the metadata for this column.
        Returns:
        the column metadata
      • setColumnInfo

        public void setColumnInfo​(ColumnInfo colinfo)
        Sets the ColumnInfo which provides the metadata for this column.
        Parameters:
        colinfo - the column metadata
      • readValue

        public abstract java.lang.Object readValue​(long irow)
                                            throws java.io.IOException
        Returns the value stored at a given row in this column.
        Parameters:
        irow - the row from which to retrieve the value
        Returns:
        the value stored at irow
        Throws:
        java.io.IOException - if there is some problem reading
      • storeValue

        public void storeValue​(long irow,
                               java.lang.Object val)
                        throws java.io.IOException
        Stores a given value in a given row for this column. Will only work if the isWritable method returns true. The implementation in the ColumnData class throws an UnsupportedOperationException.
        Parameters:
        val - the object to store
        irow - the row to store it in
        Throws:
        java.lang.UnsupportedOperationException - if !isWritable()
        java.lang.NullPointerException - if val==null and this column is not nullable
        java.lang.ArrayStoreException - if val is not compatible with the content class of this column
        java.io.IOException - if there is some problem writing
      • isWritable

        public boolean isWritable()
        Indicates whether this object can store values. The implementation in the ColumnData class returns false
        Returns:
        true iff storeValue(long, java.lang.Object) can be used