casa
$Rev:20696$
|
An abstract base class for table column descriptions. More...
#include <BaseColDesc.h>
Public Member Functions | |
BaseColumnDesc (const String &name, const String &comment, const String &dataManagerType, const String &dataManagerGroup, DataType, const String &dataTypeId, Int options, uInt ndim, const IPosition &shape, Bool isScalar, Bool isArray, Bool isTable) | |
Construct the column base object. | |
BaseColumnDesc (const BaseColumnDesc &) | |
Copy constructor (copy semantics). | |
virtual | ~BaseColumnDesc () |
TableRecord & | rwKeywordSet () |
Get access to the set of keywords. | |
const TableRecord & | keywordSet () const |
virtual void | show (ostream &os) const =0 |
Show the column. | |
const String & | name () const |
Get the name of the column. | |
DataType | dataType () const |
Get the data type of the column. | |
const String & | dataTypeId () const |
Get the type id for non-standard data types (i.e. | |
const String & | dataManagerType () const |
Get the type name of the default data manager. | |
String & | dataManagerType () |
Get the type name of the default data manager. | |
const String & | dataManagerGroup () const |
Get the data manager group. | |
String & | dataManagerGroup () |
Get the data manager group. | |
void | setDefaultDataManager (Bool always) |
Set the data manager type and group to the default. | |
const String & | comment () const |
Get comment string. | |
String & | comment () |
Get comment string (allowing it to be changed). | |
Int | options () const |
Get the options. | |
Bool | isScalar () const |
Test if column is scalar, array or table. | |
Bool | isArray () const |
Bool | isTable () const |
Int | ndim () const |
Get the number of dimensions. | |
const IPosition & | shape () const |
Get the predefined shape. | |
void | setNdim (uInt ndim) |
Set the number of dimensions. | |
void | setShape (const IPosition &shape) |
Set the predefined shape. | |
void | setShape (const IPosition &shape, Bool directOption) |
void | setOptions (Int options) |
Set the options to the given value. | |
uInt | maxLength () const |
Get the maximum value length. | |
void | setMaxLength (uInt maxLength) |
Set the maximum value length. | |
const TableDesc * | tableDesc () const |
Get table description (in case column contains subtables). | |
virtual TableDesc * | tableDesc () |
virtual BaseColumnDesc * | clone () const =0 |
Clone a column description (creating a new column description object). | |
virtual String | className () const =0 |
Get the underlying class name. | |
void | setName (const String &name) |
Set the name of the column (for a rename). | |
Protected Member Functions | |
BaseColumnDesc & | operator= (const BaseColumnDesc &) |
Assignment (copy semantics). | |
void | putFile (AipsIO &, const TableAttr &) const |
Put the object. | |
void | getFile (AipsIO &, const TableAttr &) |
Get the object. | |
virtual void | putDesc (AipsIO &) const =0 |
Put the derived object. | |
virtual void | getDesc (AipsIO &)=0 |
Get the derived object. | |
virtual PlainColumn * | makeColumn (ColumnSet *) const =0 |
Make a PlainColumn object out of the description. | |
RefColumn * | makeRefColumn (RefTable *, BaseColumn *) const |
Make a RefColumn object out of the description. | |
virtual ConcatColumn * | makeConcatColumn (ConcatTable *) const |
Make a ConcatColumn object out of the description. | |
Protected Attributes | |
String | colName_p |
String | comment_p |
String | dataManType_p |
String | dataManGroup_p |
DataType | dtype_p |
String | dtypeId_p |
Int | option_p |
Int | nrdim_p |
IPosition | shape_p |
uInt | maxLength_p |
TableRecord * | keySetPtr_p |
Bool | isScalar_p |
Bool | isArray_p |
Bool | isTable_p |
Private Member Functions | |
virtual void | checkAdd (const ColumnDescSet &cds) const |
Check if a column can be handled by ColumnDescSet. | |
virtual void | checkRename (const ColumnDescSet &cds, const String &newName) const |
virtual void | handleAdd (ColumnDescSet &cds) |
Take action after a column has been handled by ColumnDescSet. | |
virtual void | handleRename (ColumnDescSet &cds, const String &oldName) |
virtual void | handleRemove (ColumnDescSet &cds) |
virtual void | renameAction (const String &newName, const String &oldName) |
This function allows each column to act upon a rename of another column. | |
Friends | |
class | ColumnDesc |
An abstract base class for table column descriptions.
Internal
"Base" indicates that this is a base class for the specialized column description classes.
BaseColumnDesc is an abstract class describing a column in a table. Various XXXXColumnDesc classes are derived from it to describe the various types of columns, among them ArrayColumnDesc<T> and ScalarcolumnDesc<T>. These derived classes are used to construct a column description which can be added to the TableDesc.
BaseColumnDesc contains functions common to all kinds of column descriptions. It contains a TableRecord to attach simple keywords to the column description (e.g. to define a scale-factor). This keyword set serves as the initial keyword set for the column when a table gets instantiated from a table description.
The ColumnDesc class is an envelope around BaseColumnDesc, which can be used to get information about existing column descriptions.
This abstract base class defines the common features required of all concrete column description classes. It also provides the hook (for letter objects) required by ColumnDesc, the envelope class.
Definition at line 107 of file BaseColDesc.h.
casa::BaseColumnDesc::BaseColumnDesc | ( | const String & | name, |
const String & | comment, | ||
const String & | dataManagerType, | ||
const String & | dataManagerGroup, | ||
DataType | , | ||
const String & | dataTypeId, | ||
Int | options, | ||
uInt | ndim, | ||
const IPosition & | shape, | ||
Bool | isScalar, | ||
Bool | isArray, | ||
Bool | isTable | ||
) |
Construct the column base object.
casa::BaseColumnDesc::BaseColumnDesc | ( | const BaseColumnDesc & | ) |
Copy constructor (copy semantics).
virtual casa::BaseColumnDesc::~BaseColumnDesc | ( | ) | [virtual] |
virtual void casa::BaseColumnDesc::checkAdd | ( | const ColumnDescSet & | cds | ) | const [private, virtual] |
Check if a column can be handled by ColumnDescSet.
This gives, for instance, the virtual column class the opportunity to check if the used columns exist.
Referenced by casa::ColumnDesc::checkAdd().
virtual void casa::BaseColumnDesc::checkRename | ( | const ColumnDescSet & | cds, |
const String & | newName | ||
) | const [private, virtual] |
Referenced by casa::ColumnDesc::checkRename().
virtual String casa::BaseColumnDesc::className | ( | ) | const [pure virtual] |
Get the underlying class name.
Implemented in casa::ArrayColumnDesc< T >, casa::ScalarColumnDesc< T >, casa::SubTableDesc, and casa::ScalarRecordColumnDesc.
virtual BaseColumnDesc* casa::BaseColumnDesc::clone | ( | ) | const [pure virtual] |
Clone a column description (creating a new column description object).
Implemented in casa::ArrayColumnDesc< T >, casa::ScalarColumnDesc< T >, casa::SubTableDesc, and casa::ScalarRecordColumnDesc.
const String& casa::BaseColumnDesc::comment | ( | ) | const [inline] |
Get comment string.
Definition at line 173 of file BaseColDesc.h.
References comment_p.
Referenced by casa::ColumnDesc::comment().
String& casa::BaseColumnDesc::comment | ( | ) | [inline] |
Get comment string (allowing it to be changed).
Definition at line 177 of file BaseColDesc.h.
References comment_p.
const String& casa::BaseColumnDesc::dataManagerGroup | ( | ) | const [inline] |
Get the data manager group.
Definition at line 160 of file BaseColDesc.h.
References dataManGroup_p.
Referenced by casa::ColumnDesc::dataManagerGroup().
String& casa::BaseColumnDesc::dataManagerGroup | ( | ) | [inline] |
Get the data manager group.
(allowing it to be changed)
Definition at line 165 of file BaseColDesc.h.
References dataManGroup_p.
const String& casa::BaseColumnDesc::dataManagerType | ( | ) | const [inline] |
Get the type name of the default data manager.
Definition at line 151 of file BaseColDesc.h.
References dataManType_p.
Referenced by casa::ColumnDesc::dataManagerType().
String& casa::BaseColumnDesc::dataManagerType | ( | ) | [inline] |
Get the type name of the default data manager.
(allowing it to be changed)
Definition at line 156 of file BaseColDesc.h.
References dataManType_p.
DataType casa::BaseColumnDesc::dataType | ( | ) | const [inline] |
Get the data type of the column.
Definition at line 142 of file BaseColDesc.h.
References dtype_p.
Referenced by casa::ColumnDesc::dataType().
const String& casa::BaseColumnDesc::dataTypeId | ( | ) | const [inline] |
Get the type id for non-standard data types (i.e.
for TpOther). For standard data types the returned string is empty.
Definition at line 147 of file BaseColDesc.h.
References dtypeId_p.
Referenced by casa::ColumnDesc::dataTypeId().
virtual void casa::BaseColumnDesc::getDesc | ( | AipsIO & | ) | [protected, pure virtual] |
Get the derived object.
Implemented in casa::ArrayColumnDesc< T >, casa::ScalarColumnDesc< T >, casa::SubTableDesc, and casa::ScalarRecordColumnDesc.
void casa::BaseColumnDesc::getFile | ( | AipsIO & | , |
const TableAttr & | |||
) | [protected] |
Get the object.
It uses getDesc to get the derived object.
virtual void casa::BaseColumnDesc::handleAdd | ( | ColumnDescSet & | cds | ) | [private, virtual] |
Take action after a column has been handled by ColumnDescSet.
This gives, for instance, the virtual column class the opportunity to update the virtual column list.
Reimplemented in casa::SubTableDesc.
Referenced by casa::ColumnDesc::handleAdd().
virtual void casa::BaseColumnDesc::handleRemove | ( | ColumnDescSet & | cds | ) | [private, virtual] |
Referenced by casa::ColumnDesc::handleRemove().
virtual void casa::BaseColumnDesc::handleRename | ( | ColumnDescSet & | cds, |
const String & | oldName | ||
) | [private, virtual] |
Referenced by casa::ColumnDesc::handleRename().
Bool casa::BaseColumnDesc::isArray | ( | ) | const [inline] |
Definition at line 188 of file BaseColDesc.h.
References isArray_p.
Referenced by casa::ColumnDesc::isArray().
Bool casa::BaseColumnDesc::isScalar | ( | ) | const [inline] |
Test if column is scalar, array or table.
Definition at line 186 of file BaseColDesc.h.
References isScalar_p.
Referenced by casa::ColumnDesc::isScalar().
Bool casa::BaseColumnDesc::isTable | ( | ) | const [inline] |
Definition at line 190 of file BaseColDesc.h.
References isTable_p.
Referenced by casa::ColumnDesc::isTable().
const TableRecord& casa::BaseColumnDesc::keywordSet | ( | ) | const [inline] |
Definition at line 130 of file BaseColDesc.h.
References keySetPtr_p.
Referenced by casa::ColumnDesc::keywordSet().
virtual PlainColumn* casa::BaseColumnDesc::makeColumn | ( | ColumnSet * | ) | const [protected, pure virtual] |
Make a PlainColumn object out of the description.
Implemented in casa::ArrayColumnDesc< T >, casa::ScalarColumnDesc< T >, casa::SubTableDesc, and casa::ScalarRecordColumnDesc.
Referenced by casa::ColumnDesc::makeColumn().
virtual ConcatColumn* casa::BaseColumnDesc::makeConcatColumn | ( | ConcatTable * | ) | const [protected, virtual] |
Make a ConcatColumn object out of the description.
The default makes a ConcatColumn object. Derived classes (ScalarColumnDesc) can make more specialized objects.
Reimplemented in casa::ScalarColumnDesc< T >.
Referenced by casa::ColumnDesc::makeConcatColumn().
RefColumn* casa::BaseColumnDesc::makeRefColumn | ( | RefTable * | , |
BaseColumn * | |||
) | const [protected] |
Make a RefColumn object out of the description.
Referenced by casa::ColumnDesc::makeRefColumn().
uInt casa::BaseColumnDesc::maxLength | ( | ) | const [inline] |
Get the maximum value length.
Definition at line 230 of file BaseColDesc.h.
References maxLength_p.
Referenced by casa::ColumnDesc::maxLength().
const String& casa::BaseColumnDesc::name | ( | ) | const [inline] |
Get the name of the column.
Definition at line 138 of file BaseColDesc.h.
References colName_p.
Referenced by setName().
Int casa::BaseColumnDesc::ndim | ( | ) | const [inline] |
Get the number of dimensions.
Definition at line 195 of file BaseColDesc.h.
References nrdim_p.
Referenced by casa::ColumnDesc::ndim().
BaseColumnDesc& casa::BaseColumnDesc::operator= | ( | const BaseColumnDesc & | ) | [protected] |
Assignment (copy semantics).
Int casa::BaseColumnDesc::options | ( | ) | const [inline] |
Get the options.
Definition at line 181 of file BaseColDesc.h.
References option_p.
Referenced by casa::ColumnDesc::options().
virtual void casa::BaseColumnDesc::putDesc | ( | AipsIO & | ) | const [protected, pure virtual] |
Put the derived object.
Implemented in casa::ArrayColumnDesc< T >, casa::ScalarColumnDesc< T >, casa::SubTableDesc, and casa::ScalarRecordColumnDesc.
void casa::BaseColumnDesc::putFile | ( | AipsIO & | , |
const TableAttr & | |||
) | const [protected] |
Put the object.
It uses putDesc to put the derived object.
virtual void casa::BaseColumnDesc::renameAction | ( | const String & | newName, |
const String & | oldName | ||
) | [private, virtual] |
This function allows each column to act upon a rename of another column.
If the old name is used internally, the column can update itself.
Referenced by casa::ColumnDesc::renameAction().
TableRecord& casa::BaseColumnDesc::rwKeywordSet | ( | ) | [inline] |
Get access to the set of keywords.
Definition at line 128 of file BaseColDesc.h.
References keySetPtr_p.
Referenced by casa::ColumnDesc::rwKeywordSet().
void casa::BaseColumnDesc::setDefaultDataManager | ( | Bool | always | ) |
Set the data manager type and group to the default.
If always==True
they are always set, otherwise only if empty.
Referenced by casa::ColumnDesc::setDefaultDataManager().
void casa::BaseColumnDesc::setMaxLength | ( | uInt | maxLength | ) |
Set the maximum value length.
So far, this is only possible for columns containing String values. An exception is thrown if the column data type is not TpString. Some storage managers support fixed length strings and can store them more efficiently than variable length strings.
Referenced by casa::ColumnDesc::setMaxLength().
void casa::BaseColumnDesc::setName | ( | const String & | name | ) | [inline] |
Set the name of the column (for a rename).
Definition at line 324 of file BaseColDesc.h.
References colName_p, and name().
Referenced by casa::ColumnDesc::setName().
void casa::BaseColumnDesc::setNdim | ( | uInt | ndim | ) |
Set the number of dimensions.
This is only allowed for arrays. ndim
can be zero to clear the number of dimensions and the shape. Otherwise it can only be used if the dimensionality has not been defined yet.
Referenced by casa::ColumnDesc::setNdim().
void casa::BaseColumnDesc::setOptions | ( | Int | options | ) |
Set the options to the given value.
Option ColumnDesc::Direct
forces FixedShape
. If FixedShape
is not given (implicitly or explicitly), the column can have no shape, so its shape is cleared.
Referenced by casa::ColumnDesc::setOptions().
void casa::BaseColumnDesc::setShape | ( | const IPosition & | shape | ) |
Set the predefined shape.
This is only allowed for arrays, for which the shape has not been defined yet. If the dimensionality has already been defined, it must match. It will set the option FixedShape if not set yet.
The first version leaves the Direct
option as is. The second version sets the Direct
option as given.
Referenced by casa::ColumnDesc::setShape().
void casa::BaseColumnDesc::setShape | ( | const IPosition & | shape, |
Bool | directOption | ||
) |
const IPosition& casa::BaseColumnDesc::shape | ( | ) | const [inline] |
Get the predefined shape.
If not defined, a zero shape will be returned.
Definition at line 200 of file BaseColDesc.h.
References shape_p.
Referenced by casa::ColumnDesc::shape().
virtual void casa::BaseColumnDesc::show | ( | ostream & | os | ) | const [pure virtual] |
Show the column.
Implemented in casa::ArrayColumnDesc< T >, casa::ScalarColumnDesc< T >, casa::SubTableDesc, and casa::ScalarRecordColumnDesc.
const TableDesc* casa::BaseColumnDesc::tableDesc | ( | ) | const [inline] |
Get table description (in case column contains subtables).
Definition at line 244 of file BaseColDesc.h.
Referenced by casa::ColumnDesc::tableDesc().
virtual TableDesc* casa::BaseColumnDesc::tableDesc | ( | ) | [virtual] |
Reimplemented in casa::SubTableDesc.
friend class ColumnDesc [friend] |
Reimplemented in casa::ArrayColumnDesc< T >, casa::ScalarColumnDesc< T >, casa::SubTableDesc, and casa::ScalarRecordColumnDesc.
Definition at line 110 of file BaseColDesc.h.
String casa::BaseColumnDesc::colName_p [protected] |
String casa::BaseColumnDesc::comment_p [protected] |
Definition at line 251 of file BaseColDesc.h.
Referenced by comment().
String casa::BaseColumnDesc::dataManGroup_p [protected] |
Definition at line 253 of file BaseColDesc.h.
Referenced by dataManagerGroup().
String casa::BaseColumnDesc::dataManType_p [protected] |
Definition at line 252 of file BaseColDesc.h.
Referenced by dataManagerType().
DataType casa::BaseColumnDesc::dtype_p [protected] |
Definition at line 254 of file BaseColDesc.h.
Referenced by dataType().
String casa::BaseColumnDesc::dtypeId_p [protected] |
Definition at line 255 of file BaseColDesc.h.
Referenced by dataTypeId().
Bool casa::BaseColumnDesc::isArray_p [protected] |
Definition at line 262 of file BaseColDesc.h.
Referenced by isArray().
Bool casa::BaseColumnDesc::isScalar_p [protected] |
Definition at line 261 of file BaseColDesc.h.
Referenced by isScalar().
Bool casa::BaseColumnDesc::isTable_p [protected] |
Definition at line 263 of file BaseColDesc.h.
Referenced by isTable().
TableRecord* casa::BaseColumnDesc::keySetPtr_p [protected] |
Definition at line 260 of file BaseColDesc.h.
Referenced by keywordSet(), and rwKeywordSet().
uInt casa::BaseColumnDesc::maxLength_p [protected] |
Definition at line 259 of file BaseColDesc.h.
Referenced by maxLength().
Int casa::BaseColumnDesc::nrdim_p [protected] |
Definition at line 257 of file BaseColDesc.h.
Referenced by ndim().
Int casa::BaseColumnDesc::option_p [protected] |
Definition at line 256 of file BaseColDesc.h.
Referenced by options().
IPosition casa::BaseColumnDesc::shape_p [protected] |
Definition at line 258 of file BaseColDesc.h.
Referenced by shape().