TableMeasColumn.h
Classes
- ROTableMeasColumn -- Read only access to table scalar Measure columns. (full description)
Interface
- Public Members
- ROTableMeasColumn()
- ROTableMeasColumn (const Table& tab, const String& columnName)
- ROTableMeasColumn (const ROTableMeasColumn& that)
- virtual ~ROTableMeasColumn()
- void reference (const ROTableMeasColumn& that)
- void attach (const Table& tab, const String& columnName)
- Bool isDefined (uInt rownr) const
- const TableMeasDescBase& measDesc() const
- Bool isNull() const
- void throwIfNull() const
- const String& columnName() const
- Table table() const
- Bool isScalar() const
- Private Members
- ROTableMeasColumn& operator= (const ROTableMeasColumn& that)
Review Status
- Reviewed By:
- Bob Garwood
- Date Reviewed:
- 1999/12/23
- Programs:
- Tests:
Prerequisite
Synopsis
ROTableMeasColumn is the base class for the templated classes
ROScalarMeasColumn and
ROArrayMeasColumn
which give access to table columns containing
measures.
This base class offers some common functionality like getting
the column name and testing if a row of the column contains a value.
Its main function is measDesc(), which gives access
to the TableMeasDescBase
object containing a description of the measure column.
Example
// Create the object for measure column Time1.
ROTableMeasColumn timeCol(tab, "Time1");
// print some details about the column
if (timeCol.measDesc().isRefCodeVariable()) {
cout << "The column has variable references." << endl;
} else {
cout << "The fixed MeasRef for the column is: "
<< timeCol.getMeasRef() << endl;
}
Motivation
This class contains the common functionality for the templated
derived classes.
Member Description
The default constructor creates a null object. Useful for creating
arrays of ROScalarMeasColumn objects. Attempting to use a null object
will produce a segmentation fault so care needs to be taken to
initialise the objects first by using attach().
An ROScalarMeasColumn object can be tested if it is null by using the
isNull() member.
Create the ScalarMeasColumn from the table and column Name.
Copy constructor (copy semantics).
void reference (const ROTableMeasColumn& that)
Change the reference to another column.
void attach (const Table& tab, const String& columnName)
Attach another column to the object.
Bool isDefined (uInt rownr) const
Tests if a row contains a Measure (i.e., if the row has a defined
value).
Get access to the TableMeasDescBase describing the column.
Bool isNull() const
Test if the object is null.
Throw an exception if the object is null.
Get the name of the column.
Get the Table object this column belongs to.
Is the column a scalar measures column?
It is if the underlying column is a scalar column or an array
column with a fixed 1-dimensional shape.
Otherwise it is an array measures column.
It is not 100% determined if a measure column is an array or a scalar.
If the underlying table column is an array with a variable shape,
this function will see it as an array measure column. However,
it might be accessible as a scalar measure column.
ROTableMeasColumn& operator= (const ROTableMeasColumn& that)
Assignment makes no sense in a readonly class.
Declaring this operator private makes it unusable.