Isis Developer Reference
Isis::TableField Class Reference

Class for storing an Isis::Table's field information. More...

#include <TableField.h>

Collaboration diagram for Isis::TableField:
Collaboration graph

Public Types

enum  Type { Integer, Double, Text, Real }
 This enum describes the value type for the TableField. More...
 

Public Member Functions

 TableField (const QString &name, Type type, int size=1)
 Constructs a TableField object with the given field name, field value type, and field size. More...
 
 TableField (PvlGroup &field)
 Constructs a TableField object from a PvlGroup. More...
 
 ~TableField ()
 Destroys the TableField object. More...
 
QString name () const
 Returns the name of the TableField. More...
 
Type type () const
 Returns the enumerated value of the TableField value's type. More...
 
bool isInteger () const
 Determines whether the field type is Integer. More...
 
bool isDouble () const
 Determines whether the field type is Double. More...
 
bool isText () const
 Determines whether the field type is Text. More...
 
bool isReal () const
 Determines whether the field type is Text. More...
 
int bytes () const
 Returns the number of bytes in the field value. More...
 
int size () const
 Returns the number of values stored for the field at each record. More...
 
 operator int () const
 Casts the table field value to int if the type is Integer and the size is. More...
 
 operator double () const
 Casts the table field value to double if the type is Double and the size is. More...
 
 operator float () const
 Casts the table field value to float if the type is Real and the size is. More...
 
 operator QString () const
 Casts the table field value to string if the type is Text. More...
 
 operator std::vector< int > () const
 Casts the table field value to a vector of ints if the type is Integer. More...
 
 operator std::vector< double > () const
 Casts the table field value to a vector of doubles if the type is Double. More...
 
 operator std::vector< float > () const
 Casts the table field value to a vector of floats if the type is Real. More...
 
void operator= (const int value)
 Sets field value equal to input if TableField::Type is Integer and size is 1. More...
 
void operator= (const double value)
 Sets field value equal to input if TableField::Type is Double and size is 1. More...
 
void operator= (const float value)
 Sets field value equal to input if the TableField::Type is Real and the size is 1. More...
 
void operator= (const QString &value)
 Sets field value equal to input if the TableField::Type is Text. More...
 
void operator= (const std::vector< int > &values)
 Sets field value equal to input if the TableField::Type is Integer and the input vector size matches the field size. More...
 
void operator= (const std::vector< double > &values)
 Sets field value equal to the input if the TableField::Type is Double and the input vector size matches the field size. More...
 
void operator= (const std::vector< float > &value)
 Sets field value equal to the input if the TableField::Type is Real and the input vector size matches the field size. More...
 
void operator= (const char *buf)
 Sets field value equal to the values found in the character string array if the TableField::Type is Text. More...
 
void operator= (const void *buf)
 Sets field value equal to the values found in the input binary buffer. More...
 
PvlGroup pvlGroup ()
 Creates and returns a PvlGroup named "Field" containing the following keywords and their respective values: "Name", "Type", and "Size". More...
 

Static Public Member Functions

static QString toString (const TableField &field, QString delimiter=",")
 

Detailed Description

Class for storing an Isis::Table's field information.

This class represents the field values of an Isis table. In Isis3, fields correspond to column values. Each TableField object is a single table entry for a column value at a specific row (or record) of the table.

Be careful to note that the size of a field is the number of array values for a single column entry. It is not the number of rows or records of the table.

Author
2004-09-01 Jeff Anderson

Member Enumeration Documentation

◆ Type

This enum describes the value type for the TableField.

Enumerator
Integer 

The values in the field are 4 byte integers.

Double 

The values in the field are 8 byte doubles.

Text 

The values in the field are text strings with 1 byte per character.

Real 

The values in the field are 4 byte reals or floats.

Constructor & Destructor Documentation

◆ TableField() [1/2]

Isis::TableField::TableField ( const QString &  name,
TableField::Type  type,
int  size = 1 
)

Constructs a TableField object with the given field name, field value type, and field size.

The size defaults to 1 entry value per field.

Parameters
nameThe name of the field.
typeThe type of the field value.
sizeThe size of the field. This is the number of values for a single table entry. Defaults to 1.

References Isis::Double, and Isis::Real.

◆ TableField() [2/2]

Isis::TableField::TableField ( PvlGroup field)

Constructs a TableField object from a PvlGroup.

The given group must contain the PvlKeywords "Name", "Size", and "Type". "Size" must be an integer value and valid values for "Type" are "Integer", "Double", "Text", or "Real".

Parameters
fieldPvlGroup containing Name, Size, and Type for new TableField object
Exceptions
IException::Programmer- Invalid field type

References _FILEINFO_, Isis::Double, and Isis::Real.

◆ ~TableField()

Isis::TableField::~TableField ( )

Destroys the TableField object.

Member Function Documentation

◆ bytes()

int Isis::TableField::bytes ( ) const

Returns the number of bytes in the field value.

Returns
int The number of bytes in the TableField

Referenced by Isis::TableRecord::Swap(), and Isis::TableRecord::Unpack().

◆ isDouble()

bool Isis::TableField::isDouble ( ) const

Determines whether the field type is Double.

Returns
bool Returns true if field type is Double, and false if it is not.

References Isis::Double.

Referenced by Isis::Blobber::load(), Isis::TableRecord::Pack(), Isis::TableRecord::Swap(), and toString().

◆ isInteger()

bool Isis::TableField::isInteger ( ) const

Determines whether the field type is Integer.

Returns
bool Returns true if field type is Integer, and false if it is not.

Referenced by Isis::Blobber::load(), Isis::TableRecord::Pack(), Isis::TableRecord::Swap(), and toString().

◆ isReal()

bool Isis::TableField::isReal ( ) const

Determines whether the field type is Text.

Returns
bool Returns true if field type is Text, and false if it is not.

References Isis::Real.

Referenced by Isis::TableRecord::Pack(), and Isis::TableRecord::Swap().

◆ isText()

bool Isis::TableField::isText ( ) const

Determines whether the field type is Text.

Returns
bool Returns true if field type is Text, and false if it is not.

Referenced by Isis::TableRecord::Pack(), Isis::TableRecord::Swap(), and toString().

◆ name()

QString Isis::TableField::name ( ) const

Returns the name of the TableField.

Returns
string Name of TableField

Referenced by Isis::TrackingTable::toTable().

◆ operator double()

Isis::TableField::operator double ( ) const

Casts the table field value to double if the type is Double and the size is.

TableField field("Field 1", FieldType::Double, 1); // The following lines are equivalent double value = double(field); double value = (double) field;

Returns
double The value of the field.
Exceptions
IException::Programmer- Field is not a Double
IException::Programmer- Field has multiple Double values

References _FILEINFO_, and Isis::Double.

◆ operator float()

Isis::TableField::operator float ( ) const

Casts the table field value to float if the type is Real and the size is.

TableField field("Field 1", FieldType::Real, 1); // The following lines are equivalent float value = float(field); float value = (float) field;

Returns
float The value of the field.
Exceptions
IException::Programmer- Field is not a Real
IException::Programmer- Field has multiple Real values

References _FILEINFO_, and Isis::Real.

◆ operator int()

Isis::TableField::operator int ( ) const

Casts the table field value to int if the type is Integer and the size is.

TableField field("Field 1", FieldType::Integer, 1); // The following lines are equivalent int value = int(field); int value = (int) field;

Returns
int The value of the field.
Exceptions
IException::Programmer- Field is not an Integer
IException::Programmer- Field has multiple Integer values

References _FILEINFO_.

◆ operator QString()

Isis::TableField::operator QString ( ) const

Casts the table field value to string if the type is Text.

TableField field("Field 1", FieldType::Text, 9); // The following lines are equivalent string value = QString(field); string value = (QString) field;

Returns
string The value of the field.
Exceptions
IException::Programmer- Field is not a string

References _FILEINFO_.

◆ operator std::vector< double >()

Isis::TableField::operator std::vector< double > ( ) const

Casts the table field value to a vector of doubles if the type is Double.

TableField field("Field 1", FieldType::Double, 3); vector<double> values = std::vector<double>(field);

Returns
The value of the field.
Exceptions
IException::Programmer- Field is not a Double array

References _FILEINFO_, and Isis::Double.

◆ operator std::vector< float >()

Isis::TableField::operator std::vector< float > ( ) const

Casts the table field value to a vector of floats if the type is Real.

TableField field("Field 1", FieldType::Real, 3); vector<float> values = std::vector<float>(field);

Returns
The value of the field.
Exceptions
IException::Programmer- Field is not an Integer array

References _FILEINFO_, and Isis::Real.

◆ operator std::vector< int >()

Isis::TableField::operator std::vector< int > ( ) const

Casts the table field value to a vector of ints if the type is Integer.

TableField field("Field 1", FieldType::Integer, 3); vector<int> values = std::vector<int>(field);

Returns
The value of the field.
Exceptions
IException::Programmer- Field is not an Integer array

References _FILEINFO_.

◆ operator=() [1/9]

void Isis::TableField::operator= ( const char *  buf)

Sets field value equal to the values found in the character string array if the TableField::Type is Text.

Parameters
bufCharacter array conataining text values to be assigned to the field value.
Exceptions
IException::Programmer- Field is not Text

References _FILEINFO_.

◆ operator=() [2/9]

void Isis::TableField::operator= ( const double  value)

Sets field value equal to input if TableField::Type is Double and size is 1.

Parameters
valueDouble to be assigned to field value
Exceptions
IException::Programmer- Field is not a Double
IException::Programmer- Field has multiple Double values

References _FILEINFO_, Isis::Double, and Isis::toString().

◆ operator=() [3/9]

void Isis::TableField::operator= ( const float  value)

Sets field value equal to input if the TableField::Type is Real and the size is 1.

Parameters
valuefloat to be assigned to field value
Exceptions
IException::Programmer- Field is not a Real
IException::Programmer- Field has multiple Real values

References _FILEINFO_, Isis::Real, and Isis::toString().

◆ operator=() [4/9]

void Isis::TableField::operator= ( const int  value)

Sets field value equal to input if TableField::Type is Integer and size is 1.

Parameters
valueInteger to be assigned to field value
Exceptions
IException::Programmer- Field is not an Integer
IException::Programmer- Field has multiple Integer values

References _FILEINFO_, and Isis::toString().

◆ operator=() [5/9]

void Isis::TableField::operator= ( const QString &  value)

Sets field value equal to input if the TableField::Type is Text.

Parameters
valuestring to be assigned to field value
Exceptions
IException::Programmer- Field is not a string

References _FILEINFO_, and Isis::toString().

◆ operator=() [6/9]

void Isis::TableField::operator= ( const std::vector< double > &  values)

Sets field value equal to the input if the TableField::Type is Double and the input vector size matches the field size.

Parameters
valuesDouble vector of values to be assigned to field value
Exceptions
IException::Programmer- Field is not a Double
IException::Programmer- Vector is not the correct size

References _FILEINFO_, Isis::Double, and Isis::toString().

◆ operator=() [7/9]

void Isis::TableField::operator= ( const std::vector< float > &  values)

Sets field value equal to the input if the TableField::Type is Real and the input vector size matches the field size.

Parameters
valuesFloat vector of values to be assigned to field value
Exceptions
IException::Programmer- Field is not a Real
IException::Programmer- Vector is not the correct size

References _FILEINFO_, Isis::Real, and Isis::toString().

◆ operator=() [8/9]

void Isis::TableField::operator= ( const std::vector< int > &  values)

Sets field value equal to input if the TableField::Type is Integer and the input vector size matches the field size.

Parameters
valuesInteger vector of values to be assigned to field value
Exceptions
IException::Programmer- Field is not an Integer
IException::Programmer- Vector is not the correct size

References _FILEINFO_, and Isis::toString().

◆ operator=() [9/9]

void Isis::TableField::operator= ( const void *  ibuf)

Sets field value equal to the values found in the input binary buffer.

This method reads the buffer by assuming that the buffer values are stored in the same number of bytes as the TableField::Type.

Parameters
ibufBinary buffer containing values to be assigned to the field value.
Exceptions
iException::Programmer- Undefined field type.

References _FILEINFO_, Isis::Double, and Isis::Real.

◆ pvlGroup()

PvlGroup Isis::TableField::pvlGroup ( )

Creates and returns a PvlGroup named "Field" containing the following keywords and their respective values: "Name", "Type", and "Size".

Returns
PvlGroup containing field Name, Type, and Size

References Isis::Double, Isis::Real, and Isis::toString().

◆ size()

int Isis::TableField::size ( ) const

Returns the number of values stored for the field at each record.

Returns
int The size of the TableField

Referenced by Isis::TableRecord::Pack(), Isis::TableRecord::Swap(), and toString().

◆ toString()

QString Isis::TableField::toString ( const TableField field,
QString  delimiter = "," 
)
static

◆ type()

TableField::Type Isis::TableField::type ( ) const

Returns the enumerated value of the TableField value's type.

  • 0 = Integer
  • 1 = Double
  • 2 = Text
  • 3 = Real
Returns
TableField::Type Name of TableField

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