LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Public Types | Public Member Functions | Private Attributes | Friends | List of all members
lsst::afw::table::Field< T > Struct Template Reference

A description of a field in a table. More...

#include <Field.h>

Inheritance diagram for lsst::afw::table::Field< T >:
lsst::afw::table::FieldBase< T >

Public Types

typedef FieldBase< T >::Element Element
 Type used to store field data in the table (a field may have multiple elements). More...
 
- Public Types inherited from lsst::afw::table::FieldBase< T >
typedef T Value
 the type returned by BaseRecord::get More...
 
typedef T & Reference
 the type returned by BaseRecord::operator[] (non-const) More...
 
typedef T const & ConstReference
 the type returned by BaseRecord::operator[] (const) More...
 
typedef T Element
 the type of subfields (the same as the type itself for scalars) More...
 

Public Member Functions

 Field (std::string const &name, std::string const &doc, std::string const &units="", FieldBase< T > const &size=FieldBase< T >())
 Construct a new field. More...
 
 Field (std::string const &name, std::string const &doc, FieldBase< T > const &size)
 Construct a new field. More...
 
std::string const & getName () const
 Return the name of the field. More...
 
std::string const & getDoc () const
 Return the documentation for the field. More...
 
std::string const & getUnits () const
 Return the units for the field. More...
 
Field< T > copyRenamed (std::string const &newName) const
 Return a new Field with a new name and other properties the same as this. More...
 
- Public Member Functions inherited from lsst::afw::table::FieldBase< T >
int getElementCount () const
 Return the number of subfield elements (always one for scalars). More...
 
 FieldBase ()
 
 FieldBase (int)
 

Private Attributes

std::string _name
 
std::string _doc
 
std::string _units
 

Friends

std::ostream & operator<< (std::ostream &os, Field< T > const &field)
 Stringification. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from lsst::afw::table::FieldBase< T >
static std::string getTypeString ()
 Return a string description of the field type. More...
 
- Protected Member Functions inherited from lsst::afw::table::FieldBase< T >
void stream (std::ostream &os) const
 Defines how Fields are printed. More...
 
Reference getReference (Element *p, ndarray::Manager::Ptr const &) const
 Used to implement RecordBase::operator[] (non-const). More...
 
ConstReference getConstReference (Element const *p, ndarray::Manager::Ptr const &) const
 Used to implement RecordBase::operator[] (const). More...
 
Value getValue (Element const *p, ndarray::Manager::Ptr const &) const
 Used to implement RecordBase::get. More...
 
void setValue (Element *p, ndarray::Manager::Ptr const &, Value v) const
 Used to implement RecordBase::set. More...
 
- Static Protected Member Functions inherited from lsst::afw::table::FieldBase< T >
static FieldBase makeDefault ()
 Needed to allow Keys to be default-constructed. More...
 

Detailed Description

template<typename T>
struct lsst::afw::table::Field< T >

A description of a field in a table.

Field combines a type with the field name, documentation, units, and in some cases, the size of the field.

Specializations for different field types are inherited through FieldBase; see the documentation for those specializations for additional information about particular field types.

Definition at line 22 of file Field.h.

Member Typedef Documentation

template<typename T>
typedef FieldBase<T>::Element lsst::afw::table::Field< T >::Element

Type used to store field data in the table (a field may have multiple elements).

Definition at line 25 of file Field.h.

Constructor & Destructor Documentation

template<typename T>
lsst::afw::table::Field< T >::Field ( std::string const &  name,
std::string const &  doc,
std::string const &  units = "",
FieldBase< T > const &  size = FieldBase<T>() 
)
inline

Construct a new field.

Parameters
[in]nameName of the field. Schemas provide extra functionality for names whose components are separated by periods. It may also be practical to limit field names to lowercase letters, numbers, and periods, as only those names can be round-tripped with FITS I/O (periods are converted to underscores in FITS, but hence cannot be distinguished from underscores in field names).
[in]docDocumentation for the field. Should not contain single-quotes to avoid FITS round-trip problems.
[in]unitsUnits for the field. Should not contain single-quotes to avoid FITS round-trip problems.
[in]sizeSize of the field as an integer, if appropriate. Field types that accept a size have a FieldBase that is implicitly constructable from an integer, so the argument type should be considered to effectively be int; using FieldBase here allows use to throw when the signature does not match the field type.

Definition at line 46 of file Field.h.

51  : FieldBase<T>(size), _name(name), _doc(doc), _units(units) {}
std::string _name
Definition: Field.h:119
table::Key< std::string > name
Definition: ApCorrMap.cc:71
std::string _doc
Definition: Field.h:120
std::string _units
Definition: Field.h:121
template<typename T>
lsst::afw::table::Field< T >::Field ( std::string const &  name,
std::string const &  doc,
FieldBase< T > const &  size 
)
inline

Construct a new field.

Parameters
[in]nameName of the field. Schemas provide extra functionality for names whose components are separated by periods. It may also be practical to limit field names to lowercase letters, numbers, and periods, as only those names can be round-tripped with FITS I/O (periods are converted to underscores in FITS, but hence cannot be distinguished from underscores in field names).
[in]docDocumentation for the field.
[in]sizeSize of the field as an integer, if appropriate. Field types that accept a size have a FieldBase that is implicitly constructable from an integer, so the argument type should be considered to effectively be int; using FieldBase here allows use to throw when the signature does not match the field type.

Definition at line 69 of file Field.h.

73  : FieldBase<T>(size), _name(name), _doc(doc), _units() {}
std::string _name
Definition: Field.h:119
table::Key< std::string > name
Definition: ApCorrMap.cc:71
std::string _doc
Definition: Field.h:120
std::string _units
Definition: Field.h:121

Member Function Documentation

template<typename T>
Field<T> lsst::afw::table::Field< T >::copyRenamed ( std::string const &  newName) const
inline

Return a new Field with a new name and other properties the same as this.

Definition at line 114 of file Field.h.

114  {
115  return Field<T>(newName, getDoc(), getUnits(), *this);
116  }
std::string const & getDoc() const
Return the documentation for the field.
Definition: Field.h:96
std::string const & getUnits() const
Return the units for the field.
Definition: Field.h:99
template<typename T>
std::string const& lsst::afw::table::Field< T >::getDoc ( ) const
inline

Return the documentation for the field.

Definition at line 96 of file Field.h.

96 { return _doc; }
std::string _doc
Definition: Field.h:120
template<typename T>
std::string const& lsst::afw::table::Field< T >::getName ( ) const
inline

Return the name of the field.

Definition at line 93 of file Field.h.

93 { return _name; }
std::string _name
Definition: Field.h:119
template<typename T>
std::string const& lsst::afw::table::Field< T >::getUnits ( ) const
inline

Return the units for the field.

Definition at line 99 of file Field.h.

99 { return _units; }
std::string _units
Definition: Field.h:121

Friends And Related Function Documentation

template<typename T>
std::ostream& operator<< ( std::ostream &  os,
Field< T > const &  field 
)
friend

Stringification.

Definition at line 102 of file Field.h.

102  {
103  os << "Field['" << Field<T>::getTypeString()
104  << "'](name=\"" << field.getName() << "\"";
105  if (!field.getDoc().empty())
106  os << ", doc=\"" << field.getDoc() << "\"";
107  if (!field.getUnits().empty())
108  os << ", units=\"" << field.getUnits() << "\"";
109  field.stream(os);
110  return os << ")";
111  }
table::Key< int > field
Definition: ApCorrMap.cc:72
static std::string getTypeString()
Return a string description of the field type.

Member Data Documentation

template<typename T>
std::string lsst::afw::table::Field< T >::_doc
private

Definition at line 120 of file Field.h.

template<typename T>
std::string lsst::afw::table::Field< T >::_name
private

Definition at line 119 of file Field.h.

template<typename T>
std::string lsst::afw::table::Field< T >::_units
private

Definition at line 121 of file Field.h.


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