casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Friends | List of all members
casacore::BaseColumnDesc Class Referenceabstract

An abstract base class for table column descriptions. More...

#include <BaseColDesc.h>

Inheritance diagram for casacore::BaseColumnDesc:
casacore::ArrayColumnDescBase casacore::ScalarColumnDesc< T > casacore::ScalarRecordColumnDesc casacore::SubTableDesc casacore::ArrayColumnDesc< T >

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. More...
 
 BaseColumnDesc (const BaseColumnDesc &)
 Copy constructor (copy semantics). More...
 
virtual ~BaseColumnDesc ()
 
TableRecordrwKeywordSet ()
 Get access to the set of keywords. More...
 
const TableRecordkeywordSet () const
 
virtual void show (ostream &os) const =0
 Show the column. More...
 
const Stringname () const
 Get the name of the column. More...
 
DataType dataType () const
 Get the data type of the column. More...
 
const StringdataTypeId () const
 Get the type id for non-standard data types (i.e. More...
 
const StringdataManagerType () const
 Get the type name of the default data manager. More...
 
StringdataManagerType ()
 Get the type name of the default data manager. More...
 
const StringdataManagerGroup () const
 Get the data manager group. More...
 
StringdataManagerGroup ()
 Get the data manager group. More...
 
void setDefaultDataManager (Bool always)
 Set the data manager type and group to the default. More...
 
const Stringcomment () const
 Get comment string. More...
 
Stringcomment ()
 Get comment string (allowing it to be changed). More...
 
Int options () const
 Get the options. More...
 
Bool isScalar () const
 Test if column is scalar, array or table. More...
 
Bool isArray () const
 
Bool isTable () const
 
Int ndim () const
 Get the number of dimensions. More...
 
const IPositionshape () const
 Get the predefined shape. More...
 
void setNdim (uInt ndim)
 Set the number of dimensions. More...
 
void setShape (const IPosition &shape)
 Set the predefined shape. More...
 
void setShape (const IPosition &shape, Bool directOption)
 
void setOptions (Int options)
 Set the options to the given value. More...
 
uInt maxLength () const
 Get the maximum value length. More...
 
void setMaxLength (uInt maxLength)
 Set the maximum value length. More...
 
const TableDesctableDesc () const
 Get table description (in case column contains subtables). More...
 
virtual TableDesctableDesc ()
 
virtual BaseColumnDescclone () const =0
 Clone a column description (creating a new column description object). More...
 
virtual String className () const =0
 Get the underlying class name. More...
 
void setName (const String &name)
 Set the name of the column (for a rename). More...
 

Protected Member Functions

BaseColumnDescoperator= (const BaseColumnDesc &)
 Assignment (copy semantics). More...
 
void putFile (AipsIO &, const TableAttr &) const
 Put the object. More...
 
void getFile (AipsIO &, const TableAttr &)
 Get the object. More...
 
virtual void putDesc (AipsIO &) const =0
 Put the derived object. More...
 
virtual void getDesc (AipsIO &)=0
 Get the derived object. More...
 
virtual PlainColumnmakeColumn (ColumnSet *) const =0
 Make a PlainColumn object out of the description. More...
 
RefColumnmakeRefColumn (RefTable *, BaseColumn *) const
 Make a RefColumn object out of the description. More...
 
virtual ConcatColumnmakeConcatColumn (ConcatTable *) const
 Make a ConcatColumn object out of the description. More...
 

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
 
TableRecordkeySetPtr_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. More...
 
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. More...
 
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. More...
 

Friends

class ColumnDesc
 

Detailed Description

An abstract base class for table column descriptions.

Intended use:

Internal

Review Status

Reviewed By:
Paul Shannon
Date Reviewed:
1994/08/11
Test programs:
none

Prerequisite

Etymology

"Base" indicates that this is a base class for the specialized column description classes.

Synopsis

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.

Motivation

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.

Constructor & Destructor Documentation

casacore::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.

casacore::BaseColumnDesc::BaseColumnDesc ( const BaseColumnDesc )

Copy constructor (copy semantics).

virtual casacore::BaseColumnDesc::~BaseColumnDesc ( )
virtual

Member Function Documentation

virtual void casacore::BaseColumnDesc::checkAdd ( const ColumnDescSet cds) const
privatevirtual

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 casacore::ColumnDesc::checkAdd().

virtual void casacore::BaseColumnDesc::checkRename ( const ColumnDescSet cds,
const String newName 
) const
privatevirtual
virtual String casacore::BaseColumnDesc::className ( ) const
pure virtual
virtual BaseColumnDesc* casacore::BaseColumnDesc::clone ( ) const
pure virtual

Clone a column description (creating a new column description object).

Implemented in casacore::ArrayColumnDesc< T >, casacore::ScalarColumnDesc< T >, casacore::SubTableDesc, and casacore::ScalarRecordColumnDesc.

const String& casacore::BaseColumnDesc::comment ( ) const
inline

Get comment string.

Definition at line 173 of file BaseColDesc.h.

References comment_p.

Referenced by casacore::ColumnDesc::comment().

String& casacore::BaseColumnDesc::comment ( )
inline

Get comment string (allowing it to be changed).

Definition at line 177 of file BaseColDesc.h.

References comment_p.

const String& casacore::BaseColumnDesc::dataManagerGroup ( ) const
inline

Get the data manager group.

Definition at line 160 of file BaseColDesc.h.

References dataManGroup_p.

Referenced by casacore::ColumnDesc::dataManagerGroup().

String& casacore::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& casacore::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 casacore::ColumnDesc::dataManagerType().

String& casacore::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 casacore::BaseColumnDesc::dataType ( ) const
inline

Get the data type of the column.

Definition at line 142 of file BaseColDesc.h.

References dtype_p.

Referenced by casacore::ColumnDesc::dataType().

const String& casacore::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 casacore::ColumnDesc::dataTypeId().

virtual void casacore::BaseColumnDesc::getDesc ( AipsIO )
protectedpure virtual
void casacore::BaseColumnDesc::getFile ( AipsIO ,
const TableAttr  
)
protected

Get the object.

It uses getDesc to get the derived object.

virtual void casacore::BaseColumnDesc::handleAdd ( ColumnDescSet cds)
privatevirtual

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 casacore::SubTableDesc.

Referenced by casacore::ColumnDesc::handleAdd().

virtual void casacore::BaseColumnDesc::handleRemove ( ColumnDescSet cds)
privatevirtual
virtual void casacore::BaseColumnDesc::handleRename ( ColumnDescSet cds,
const String oldName 
)
privatevirtual
Bool casacore::BaseColumnDesc::isArray ( ) const
inline

Definition at line 188 of file BaseColDesc.h.

References isArray_p.

Referenced by casacore::ColumnDesc::isArray().

Bool casacore::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 casacore::ColumnDesc::isScalar().

Bool casacore::BaseColumnDesc::isTable ( ) const
inline

Definition at line 190 of file BaseColDesc.h.

References isTable_p.

Referenced by casacore::ColumnDesc::isTable().

const TableRecord& casacore::BaseColumnDesc::keywordSet ( ) const
inline

Definition at line 130 of file BaseColDesc.h.

References keySetPtr_p.

Referenced by casacore::ColumnDesc::keywordSet().

virtual PlainColumn* casacore::BaseColumnDesc::makeColumn ( ColumnSet ) const
protectedpure virtual
virtual ConcatColumn* casacore::BaseColumnDesc::makeConcatColumn ( ConcatTable ) const
protectedvirtual

Make a ConcatColumn object out of the description.

The default makes a ConcatColumn object. Derived classes (ScalarColumnDesc) can make more specialized objects.

Reimplemented in casacore::ScalarColumnDesc< T >.

Referenced by casacore::ColumnDesc::makeConcatColumn().

RefColumn* casacore::BaseColumnDesc::makeRefColumn ( RefTable ,
BaseColumn  
) const
protected

Make a RefColumn object out of the description.

Referenced by casacore::ColumnDesc::makeRefColumn().

uInt casacore::BaseColumnDesc::maxLength ( ) const
inline

Get the maximum value length.

Definition at line 230 of file BaseColDesc.h.

References maxLength_p.

Referenced by casacore::ColumnDesc::maxLength().

const String& casacore::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 casacore::BaseColumnDesc::ndim ( ) const
inline

Get the number of dimensions.

Definition at line 195 of file BaseColDesc.h.

References nrdim_p.

Referenced by casacore::ColumnDesc::ndim().

BaseColumnDesc& casacore::BaseColumnDesc::operator= ( const BaseColumnDesc )
protected

Assignment (copy semantics).

Int casacore::BaseColumnDesc::options ( ) const
inline

Get the options.

Definition at line 181 of file BaseColDesc.h.

References option_p.

Referenced by casacore::ColumnDesc::options().

virtual void casacore::BaseColumnDesc::putDesc ( AipsIO ) const
protectedpure virtual
void casacore::BaseColumnDesc::putFile ( AipsIO ,
const TableAttr  
) const
protected

Put the object.

It uses putDesc to put the derived object.

virtual void casacore::BaseColumnDesc::renameAction ( const String newName,
const String oldName 
)
privatevirtual

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 casacore::ColumnDesc::renameAction().

TableRecord& casacore::BaseColumnDesc::rwKeywordSet ( )
inline

Get access to the set of keywords.

Definition at line 128 of file BaseColDesc.h.

References keySetPtr_p.

Referenced by casacore::ColumnDesc::rwKeywordSet().

void casacore::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 casacore::ColumnDesc::setDefaultDataManager().

void casacore::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 casacore::ColumnDesc::setMaxLength().

void casacore::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 casacore::ColumnDesc::setName().

void casacore::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 casacore::ColumnDesc::setNdim().

void casacore::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 casacore::ColumnDesc::setOptions().

void casacore::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 casacore::ColumnDesc::setShape().

void casacore::BaseColumnDesc::setShape ( const IPosition shape,
Bool  directOption 
)
const IPosition& casacore::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 casacore::ColumnDesc::shape().

virtual void casacore::BaseColumnDesc::show ( ostream &  os) const
pure virtual
const TableDesc* casacore::BaseColumnDesc::tableDesc ( ) const
inline

Get table description (in case column contains subtables).

Definition at line 244 of file BaseColDesc.h.

Referenced by casacore::ColumnDesc::tableDesc().

virtual TableDesc* casacore::BaseColumnDesc::tableDesc ( )
virtual

Reimplemented in casacore::SubTableDesc.

Friends And Related Function Documentation

friend class ColumnDesc
friend

Definition at line 110 of file BaseColDesc.h.

Member Data Documentation

String casacore::BaseColumnDesc::colName_p
protected

Definition at line 250 of file BaseColDesc.h.

Referenced by name(), and setName().

String casacore::BaseColumnDesc::comment_p
protected

Definition at line 251 of file BaseColDesc.h.

Referenced by comment().

String casacore::BaseColumnDesc::dataManGroup_p
protected

Definition at line 253 of file BaseColDesc.h.

Referenced by dataManagerGroup().

String casacore::BaseColumnDesc::dataManType_p
protected

Definition at line 252 of file BaseColDesc.h.

Referenced by dataManagerType().

DataType casacore::BaseColumnDesc::dtype_p
protected

Definition at line 254 of file BaseColDesc.h.

Referenced by dataType().

String casacore::BaseColumnDesc::dtypeId_p
protected

Definition at line 255 of file BaseColDesc.h.

Referenced by dataTypeId().

Bool casacore::BaseColumnDesc::isArray_p
protected

Definition at line 262 of file BaseColDesc.h.

Referenced by isArray().

Bool casacore::BaseColumnDesc::isScalar_p
protected

Definition at line 261 of file BaseColDesc.h.

Referenced by isScalar().

Bool casacore::BaseColumnDesc::isTable_p
protected

Definition at line 263 of file BaseColDesc.h.

Referenced by isTable().

TableRecord* casacore::BaseColumnDesc::keySetPtr_p
protected

Definition at line 260 of file BaseColDesc.h.

Referenced by keywordSet(), and rwKeywordSet().

uInt casacore::BaseColumnDesc::maxLength_p
protected

Definition at line 259 of file BaseColDesc.h.

Referenced by maxLength().

Int casacore::BaseColumnDesc::nrdim_p
protected

Definition at line 257 of file BaseColDesc.h.

Referenced by ndim().

Int casacore::BaseColumnDesc::option_p
protected

Definition at line 256 of file BaseColDesc.h.

Referenced by options().

IPosition casacore::BaseColumnDesc::shape_p
protected

Definition at line 258 of file BaseColDesc.h.

Referenced by shape().


The documentation for this class was generated from the following file: