TableMeasColumn.h

Classes

ROTableMeasColumn -- Read only access to table scalar Measure columns. (full description)

class ROTableMeasColumn

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)

Description

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

ROTableMeasColumn()

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.

ROTableMeasColumn (const Table& tab, const String& columnName)

Create the ScalarMeasColumn from the table and column Name.

ROTableMeasColumn (const ROTableMeasColumn& that)

Copy constructor (copy semantics).

virtual ~ROTableMeasColumn()

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).

const TableMeasDescBase& measDesc() const

Get access to the TableMeasDescBase describing the column.

Bool isNull() const

Test if the object is null.

void throwIfNull() const

Throw an exception if the object is null.

const String& columnName() const

Get the name of the column.

Table table() const

Get the Table object this column belongs to.

Bool isScalar() const

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.

Caution 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.