diff --git a/opm/parser/eclipse/EclipseState/Tables/TableColumn.hpp b/opm/parser/eclipse/EclipseState/Tables/TableColumn.hpp index 5cca49052..585c800ea 100644 --- a/opm/parser/eclipse/EclipseState/Tables/TableColumn.hpp +++ b/opm/parser/eclipse/EclipseState/Tables/TableColumn.hpp @@ -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& values, + const std::vector& defaults, + size_t defaultCount); size_t size( ) const; + const ColumnSchema& schema() const; const std::string& name() const; + const std::vector& values() const; + const std::vector& 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 vectorCopy() const; std::vector::const_iterator begin() const; std::vector::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; diff --git a/src/opm/parser/eclipse/EclipseState/Tables/TableColumn.cpp b/src/opm/parser/eclipse/EclipseState/Tables/TableColumn.cpp index bd637dea0..7c47686c9 100644 --- a/src/opm/parser/eclipse/EclipseState/Tables/TableColumn.cpp +++ b/src/opm/parser/eclipse/EclipseState/Tables/TableColumn.cpp @@ -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& values, + const std::vector& 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& TableColumn::values() const { + return m_values; + } + + const std::vector& 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( 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(); + } + }