Isis Developer Reference
TableField.h
Go to the documentation of this file.
1#ifndef TableField_h
2#define TableField_h
8/* SPDX-License-Identifier: CC0-1.0 */
9#include <vector>
10
11#include <QString>
12
13namespace Isis {
14 class PvlGroup;
47 class TableField {
48 public:
52 enum Type {
55 Text,
57 Real
58 };
59
60 //Constructors and Destructor
61 TableField(const QString &name, Type type, int size = 1);
62 TableField(PvlGroup &field);
64
65
66 QString name() const;
67 Type type() const;
68 bool isInteger() const;
69 bool isDouble() const;
70 bool isText() const;
71 bool isReal() const;
72 int bytes() const;
73 int size() const;
74
75 operator int() const;
76 operator double() const;
77 operator float() const;
78 operator QString() const;
79 operator std::vector<int>() const;
80 operator std::vector<double>() const;
81 operator std::vector<float>() const;
82
83 void operator=(const int value);
84 void operator=(const double value);
85 void operator=(const float value);
86 void operator=(const QString &value);
87 void operator=(const std::vector<int> &values);
88 void operator=(const std::vector<double> &values);
89 void operator=(const std::vector<float> &value);
90 void operator=(const char *buf);
91 void operator=(const void *buf);
92
94
95 static QString toString(const TableField &field, QString delimiter = ",");
96
97 private:
98 QString m_name;
99 Type m_type;
100 int m_size;
102 int m_bytes;
103 std::vector<int> m_ivalues;
106 std::vector<double> m_dvalues;
109 std::vector<float> m_rvalues;
112 QString m_svalue;
115 };
116};
117
118#endif
Contains multiple PvlContainers.
Definition PvlGroup.h:41
Class for storing an Isis::Table's field information.
Definition TableField.h:47
bool isInteger() const
Determines whether the field type is Integer.
Definition TableField.cpp:122
bool isDouble() const
Determines whether the field type is Double.
Definition TableField.cpp:132
static QString toString(const TableField &field, QString delimiter=",")
Definition TableField.cpp:610
bool isReal() const
Determines whether the field type is Text.
Definition TableField.cpp:150
QString name() const
Returns the name of the TableField.
Definition TableField.cpp:97
Type
This enum describes the value type for the TableField.
Definition TableField.h:52
@ Integer
The values in the field are 4 byte integers.
Definition TableField.h:53
@ Real
The values in the field are 4 byte reals or floats.
Definition TableField.h:57
@ Text
The values in the field are text strings with 1 byte per character.
Definition TableField.h:55
@ Double
The values in the field are 8 byte doubles.
Definition TableField.h:54
int size() const
Returns the number of values stored for the field at each record.
Definition TableField.cpp:168
PvlGroup pvlGroup()
Creates and returns a PvlGroup named "Field" containing the following keywords and their respective v...
Definition TableField.cpp:589
bool isText() const
Determines whether the field type is Text.
Definition TableField.cpp:141
TableField(const QString &name, Type type, int size=1)
Constructs a TableField object with the given field name, field value type, and field size.
Definition TableField.cpp:25
Type type() const
Returns the enumerated value of the TableField value's type.
Definition TableField.cpp:112
int bytes() const
Returns the number of bytes in the field value.
Definition TableField.cpp:159
~TableField()
Destroys the TableField object.
Definition TableField.cpp:89
void operator=(const int value)
Sets field value equal to input if TableField::Type is Integer and size is 1.
Definition TableField.cpp:350
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16