26#ifndef TABLES_TABLEDESC_H
27#define TABLES_TABLEDESC_H
31#include <casacore/casa/aips.h>
32#include <casacore/tables/Tables/ColDescSet.h>
33#include <casacore/casa/IO/AipsIO.h>
34#include <casacore/casa/iosfwd.h>
35#include <casacore/casa/Arrays/ArrayFwd.h>
485 const String& hypercolumnName);
534 {
return col_p[name]; }
536 {
return col_p[name]; }
538 {
return col_p[index]; }
540 {
return col_p[index]; }
542 {
return col_p[name]; }
544 {
return col_p[index]; }
uInt ncolumn() const
Get nr of columns in this set.
void checkSubTableDesc() const
Check recursevily if the descriptions of all subtables are known.
ColumnDesc & addColumn(const ColumnDesc &)
Add a column.
void remove(const String &name)
Remove a column.
Bool isDefined(const String &name) const
Test if a column is defined in this set.
String: the storage and methods of handling collections of characters.
void checkSubTableDesc() const
Check recursively if the descriptions of all subtables are known.
uInt ncolumn() const
Get number of columns.
TableDesc & operator=(const TableDesc &)=delete
Assignment is not supported, because it is impossible to define its semantics.
void add(const TableDesc &other, Bool addKeywordSet=True)
Add another table description to this table description.
void adjustHypercolumns(const std::map< String, String > &old2new, Bool keepUnknownData=False, Bool keepUnknownCoord=False, Bool keppUnknownId=False)
Adjust the hypercolumn definitions (for a RefTable).
void removeIDhypercolumns(const Vector< String > &hcNames)
Remove ID-columns from the given hypercolumn definitions and set their default data manager type to I...
Bool isHypercolumn(const String &hypercolumnName) const
Test if the given hypercolumn exists.
~TableDesc()
The destructor writes the table description if changed.
void renameColumn(const String &newname, const String &oldname)
Rename a column.
void copy(const TableDesc &, const TabPath &, Bool copyColumns)
Initialize and copy a table description.
Vector< String > columnNames() const
Get a vector containing all column names.
const TableRecord & privateKeywordSet() const
Get readonly access to the private set of keywords.
const String & comment() const
Get comment string.
void renameHypercolumn(const String &newHypercolumnName, const String &hypercolumnName)
ColumnDesc & rwColumnDesc(const String &name)
TableDesc(const TableDesc &, const String &type, const String &version, const TabPath &, TDOption, Bool copyColumns=True)
Create a table description object with the given name (i.e.
uInt hypercolumnDesc(const String &hypercolumnName, Vector< String > &dataColumnNames, Vector< String > &coordColumnNames, Vector< String > &idColumnNames) const
Get the columns involved in a hypercolumn.
TableDesc(const String &type, const String &version, const TabPath &, TDOption=Old)
Create a table description object.
Bool isColumn(const String &name) const
Test if a column with this name exists.
static Bool isReadable(const String &tableDescName)
Test if a description file exists (i.e.
TableRecord & rwKeywordSet()
Get access to the keyword set.
void getFile(AipsIO &, const TableAttr &)
Get the table description from the file.
Vector< String > hypercolumnNames() const
Get the names of all hypercolumns.
void show(ostream &os) const
Show the table description.
void defineHypercolumn(const String &hypercolumnName, uInt ndim, const Vector< String > &dataColumnNames, const Vector< String > &coordColumnNames, const Vector< String > &idColumnNames)
void show() const
Show the table description on cout.
ColumnDesc & addColumn(const ColumnDesc &)
Add a column to the table description.
void init(const TabPath &)
Initialize the table description.
void defineHypercolumn(const String &hypercolumnName, uInt ndim, const Vector< String > &dataColumnNames)
Define a hypercolumn.
const ColumnDescSet & columnDescSet() const
Get access to the set of column descriptions.
void removeHypercolumnDesc(const String &hypercolumnName)
Remove given hypercolumn definition.
TableDesc(const TableDesc &, const String &type, const String &version, TDOption, Bool copyColumns=True)
Create a table description object with the given name (i.e.
void putFile(AipsIO &, const TableAttr &) const
Put the table description into the file.
const TableRecord & keywordSet() const
const String & getType() const
Get the table type (i.e.
TableDesc(const TableDesc &, TDOption=Scratch)
This copy constructor makes a copy of the table description maintaining its name and version.
void removeColumn(const String &name)
Remove a column.
TableDesc(const String &type, const String &version, TDOption=Old)
Create a table description object with the given name (i.e.
void throwHypercolumn(const String &hyperColumnName, const String &message)
Throw an invalid hypercolumn exception.
const ColumnDesc & columnDesc(const String &name) const
Get the column description by name or by index.
const String & version() const
Get the table description version.
TableDesc()
The default constructor creates a table description with option = Scratch and a blank name.
void defineHypercolumn(const String &hypercolumnName, uInt ndim, const Vector< String > &dataColumnNames, const Vector< String > &coordColumnNames)
TableDesc(const String &type, TDOption=Old)
Create a table description object with the given name.
const ColumnDesc & operator[](const String &name) const
this file contains all the compiler specific defines
LatticeExprNode ndim(const LatticeExprNode &expr)
1-argument function to get the dimensionality of a lattice.
bool Bool
Define the standard types used by Casacore.