allow constructing TableColumn from tables
also add accessors and equality operator
This commit is contained in:
@@ -31,9 +31,19 @@ namespace Opm {
|
||||
|
||||
class TableColumn {
|
||||
public:
|
||||
TableColumn();
|
||||
explicit TableColumn( const ColumnSchema& schema );
|
||||
TableColumn(const ColumnSchema& schema,
|
||||
const std::string& name,
|
||||
const std::vector<double>& values,
|
||||
const std::vector<bool>& defaults,
|
||||
size_t defaultCount);
|
||||
size_t size( ) const;
|
||||
const ColumnSchema& schema() const;
|
||||
const std::string& name() const;
|
||||
const std::vector<double>& values() const;
|
||||
const std::vector<bool>& defaults() const;
|
||||
size_t defaultCount() const;
|
||||
void assertOrder(double value1 , double value2) const;
|
||||
void addValue(double);
|
||||
void addDefault();
|
||||
@@ -60,6 +70,9 @@ namespace Opm {
|
||||
std::vector<double> vectorCopy() const;
|
||||
std::vector<double>::const_iterator begin() const;
|
||||
std::vector<double>::const_iterator end() const;
|
||||
|
||||
bool operator==(const TableColumn& data) const;
|
||||
|
||||
private:
|
||||
void assertUpdate(size_t index, double value) const;
|
||||
void assertPrevious(size_t index , double value) const;
|
||||
|
||||
@@ -26,6 +26,11 @@
|
||||
|
||||
namespace Opm {
|
||||
|
||||
TableColumn::TableColumn()
|
||||
{
|
||||
m_defaultCount = 0;
|
||||
}
|
||||
|
||||
TableColumn::TableColumn(const ColumnSchema& schema) :
|
||||
m_schema( schema )
|
||||
{
|
||||
@@ -33,6 +38,19 @@ namespace Opm {
|
||||
}
|
||||
|
||||
|
||||
TableColumn::TableColumn(const ColumnSchema& schema,
|
||||
const std::string& name,
|
||||
const std::vector<double>& values,
|
||||
const std::vector<bool>& defaults,
|
||||
size_t defaultCount) :
|
||||
m_schema(schema),
|
||||
m_name(name),
|
||||
m_values(values),
|
||||
m_default(defaults),
|
||||
m_defaultCount(defaultCount)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
size_t TableColumn::size() const {
|
||||
return m_values.size();
|
||||
@@ -44,10 +62,26 @@ namespace Opm {
|
||||
throw std::invalid_argument("Incorrect ordering of values in column: " + m_schema.name());
|
||||
}
|
||||
|
||||
const ColumnSchema& TableColumn::schema() const {
|
||||
return m_schema;
|
||||
}
|
||||
|
||||
const std::string& TableColumn::name() const {
|
||||
return m_name;
|
||||
}
|
||||
|
||||
const std::vector<double>& TableColumn::values() const {
|
||||
return m_values;
|
||||
}
|
||||
|
||||
const std::vector<bool>& TableColumn::defaults() const {
|
||||
return m_default;
|
||||
}
|
||||
|
||||
size_t TableColumn::defaultCount() const {
|
||||
return m_defaultCount;
|
||||
}
|
||||
|
||||
void TableColumn::assertNext(size_t index , double value) const {
|
||||
size_t nextIndex = index + 1;
|
||||
if (nextIndex < m_values.size()) {
|
||||
@@ -324,6 +358,14 @@ namespace Opm {
|
||||
return std::vector<double>( begin() , end());
|
||||
}
|
||||
|
||||
bool TableColumn::operator==(const TableColumn& data) const {
|
||||
return this->schema() == data.schema() &&
|
||||
this->name() == data.name() &&
|
||||
this->values() == data.values() &&
|
||||
this->defaults() == data.defaults() &&
|
||||
this->defaultCount() == data.defaultCount();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user