casacore
|
Set of table column descriptions. More...
#include <ColDescSet.h>
Public Member Functions | |
ColumnDescSet () | |
Construct an empty column set. More... | |
ColumnDescSet (const ColumnDescSet &) | |
Copy constructor (copy semantics). More... | |
~ColumnDescSet () | |
ColumnDescSet & | operator= (const ColumnDescSet &) |
Assignment (copy semantics). More... | |
ColumnDesc & | operator[] (const String &name) |
Get a column by its name. More... | |
const ColumnDesc & | operator[] (const String &name) const |
ColumnDesc & | operator[] (uInt index) |
Get a column by its index. More... | |
const ColumnDesc & | operator[] (uInt index) const |
uInt | ncolumn () const |
Get nr of columns in this set. More... | |
Bool | isDefined (const String &name) const |
Test if a column is defined in this set. More... | |
Bool | isEqual (const ColumnDescSet &other, Bool &equalDataTypes) const |
Test if this set equals another one. More... | |
Bool | isSubset (const ColumnDescSet &other, Bool &equalDataTypes) const |
Test if this set is a subset of another one. More... | |
Bool | isStrictSubset (const ColumnDescSet &other, Bool &equalDataTypes) const |
Test if this set is a strict subset of another one, thus if it is a subset and not equal. More... | |
Bool | isSuperset (const ColumnDescSet &other, Bool &equalDataTypes) const |
Test if this set is a superset of another one. More... | |
Bool | isStrictSuperset (const ColumnDescSet &other, Bool &equalDataTypes) const |
Test if this set is a strict superset of another one, thus if it is a superset and not equal. More... | |
Bool | isDisjoint (const ColumnDescSet &other) const |
Test if this and the other column set are disjoint. More... | |
void | show (ostream &os) const |
Get const access to the column descriptions. More... | |
void | checkSubTableDesc () const |
Check recursevily if the descriptions of all subtables are known. More... | |
Private Member Functions | |
ColumnDesc & | addColumn (const ColumnDesc &) |
Add a column. More... | |
ColumnDesc & | addColumn (const ColumnDesc &, const String &newname) |
Add a column with another name. More... | |
void | remove (const String &name) |
Remove a column. More... | |
void | rename (const String &newname, const String &oldname) |
Rename a column in the set. More... | |
Bool | allExist (const ColumnDescSet &, Bool &equalDataTypes) const |
Test if all columns are part of the other set. More... | |
void | add (const ColumnDescSet &set) |
Add another (disjoint) column set. More... | |
void | putFile (AipsIO &ios, const TableAttr &) const |
Put the object. More... | |
void | getFile (AipsIO &, const TableAttr &) |
Get the object. More... | |
Private Attributes | |
std::map< String, CountedPtr < ColumnDesc > > | cols_p |
The set of all columns. More... | |
Block< void * > | colSeq_p |
The order of addition of column descriptions. More... | |
Friends | |
class | TableDesc |
Set of table column descriptions.
Internal
ColumnDescSet is the set of column descriptions in a table description.
ColumnDescSet is used by TableDesc to store all column descriptions.
In principle this class is only used internally by the table system. However, there is a function in TableDesc which gives const access to this class. This can be used by the user to call functions like isDisjoint.
Definition at line 78 of file ColDescSet.h.
casacore::ColumnDescSet::ColumnDescSet | ( | ) |
Construct an empty column set.
casacore::ColumnDescSet::ColumnDescSet | ( | const ColumnDescSet & | ) |
Copy constructor (copy semantics).
casacore::ColumnDescSet::~ColumnDescSet | ( | ) |
|
private |
Add another (disjoint) column set.
If the sets are not disjoint (i.e. the other set contains a column with an already existing name, an exception is thrown and nothing of the other set is added.
|
private |
Add a column.
An exception is thrown if a column with this name already exists.
Referenced by casacore::TableDesc::addColumn().
|
private |
Add a column with another name.
An exception is thrown if a column with this name already exists.
|
private |
Test if all columns are part of the other set.
The flag equalDataTypes is set to True if the data types of the columns in both sets are the same.
void casacore::ColumnDescSet::checkSubTableDesc | ( | ) | const |
Check recursevily if the descriptions of all subtables are known.
Referenced by casacore::TableDesc::checkSubTableDesc().
Test if a column is defined in this set.
Definition at line 114 of file ColDescSet.h.
References cols_p.
Referenced by casacore::TableDesc::isColumn().
Bool casacore::ColumnDescSet::isDisjoint | ( | const ColumnDescSet & | other | ) | const |
Test if this and the other column set are disjoint.
Bool casacore::ColumnDescSet::isEqual | ( | const ColumnDescSet & | other, |
Bool & | equalDataTypes | ||
) | const |
Test if this set equals another one.
It is equal if the number of columns is equal and all field names in this set occur in the other too. The order of the columns is not important.
The flag equalDataTypes is set to True if the data types of all columns match.
Bool casacore::ColumnDescSet::isStrictSubset | ( | const ColumnDescSet & | other, |
Bool & | equalDataTypes | ||
) | const |
Test if this set is a strict subset of another one, thus if it is a subset and not equal.
Referenced by isStrictSuperset().
|
inline |
Test if this set is a strict superset of another one, thus if it is a superset and not equal.
Definition at line 140 of file ColDescSet.h.
References isStrictSubset().
Bool casacore::ColumnDescSet::isSubset | ( | const ColumnDescSet & | other, |
Bool & | equalDataTypes | ||
) | const |
Test if this set is a subset of another one.
It is similar to isEqual above.
Referenced by isSuperset().
|
inline |
Test if this set is a superset of another one.
Definition at line 135 of file ColDescSet.h.
References isSubset().
|
inline |
Get nr of columns in this set.
Definition at line 110 of file ColDescSet.h.
References cols_p.
Referenced by casacore::TableDesc::ncolumn().
ColumnDescSet& casacore::ColumnDescSet::operator= | ( | const ColumnDescSet & | ) |
Assignment (copy semantics).
ColumnDesc& casacore::ColumnDescSet::operator[] | ( | const String & | name | ) |
Get a column by its name.
|
inline |
Definition at line 97 of file ColDescSet.h.
|
inline |
|
inline |
Definition at line 105 of file ColDescSet.h.
References colSeq_p.
Put the object.
|
private |
Remove a column.
An exception is thrown if the column with this name does not exist.
Referenced by casacore::TableDesc::removeColumn().
Rename a column in the set.
An exception is thrown if the new name already exists or if the old name does not exist.
void casacore::ColumnDescSet::show | ( | ostream & | os | ) | const |
Get const access to the column descriptions.
Show the columns in the set.
|
friend |
Definition at line 80 of file ColDescSet.h.
|
private |
The set of all columns.
Definition at line 194 of file ColDescSet.h.
Referenced by isDefined(), and ncolumn().
|
private |
The order of addition of column descriptions.
Definition at line 198 of file ColDescSet.h.
Referenced by operator[]().