uk.ac.starlink.table
Class ColumnData

java.lang.Object
  extended by uk.ac.starlink.table.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.


Constructor Summary
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
 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

Copyright © 2004 CLRC: Central Laboratory of the Research Councils. All rights reserved.