From aa06db984c089f6291bb9053909c479e13fa90d7 Mon Sep 17 00:00:00 2001 From: Joakim Hove Date: Mon, 26 Mar 2018 17:04:08 +0200 Subject: [PATCH] Remove unused enum for ParserItem value type --- opm/parser/eclipse/Parser/ParserEnums.hpp | 8 -- src/opm/parser/eclipse/Parser/ParserEnums.cpp | 32 -------- .../parser/eclipse/Parser/ParserKeyword.cpp | 77 +++++++++---------- tests/parser/ParserTests.cpp | 29 ------- 4 files changed, 38 insertions(+), 108 deletions(-) diff --git a/opm/parser/eclipse/Parser/ParserEnums.hpp b/opm/parser/eclipse/Parser/ParserEnums.hpp index e63d65469..a3f9d30fb 100644 --- a/opm/parser/eclipse/Parser/ParserEnums.hpp +++ b/opm/parser/eclipse/Parser/ParserEnums.hpp @@ -30,12 +30,6 @@ namespace Opm { OTHER_KEYWORD_IN_DECK = 2, UNKNOWN=3 }; - enum ParserValueTypeEnum { - INT = 0, - FLOAT = 1, - STRING = 2, - DOUBLE = 3 - }; enum ParserKeywordActionEnum { @@ -47,10 +41,8 @@ namespace Opm { const std::string ParserKeywordActionEnum2String(ParserKeywordActionEnum enumValue); const std::string ParserKeywordSizeEnum2String(ParserKeywordSizeEnum enumValue); - const std::string ParserValueTypeEnum2String(ParserValueTypeEnum enumValue); ParserKeywordSizeEnum ParserKeywordSizeEnumFromString(const std::string& stringValue); - ParserValueTypeEnum ParserValueTypeEnumFromString(const std::string& stringValue); ParserKeywordActionEnum ParserKeywordActionEnumFromString(const std::string& stringValue); } diff --git a/src/opm/parser/eclipse/Parser/ParserEnums.cpp b/src/opm/parser/eclipse/Parser/ParserEnums.cpp index ab089f19a..05fc594ca 100644 --- a/src/opm/parser/eclipse/Parser/ParserEnums.cpp +++ b/src/opm/parser/eclipse/Parser/ParserEnums.cpp @@ -61,38 +61,6 @@ namespace Opm { /*****************************************************************/ - const std::string ParserValueTypeEnum2String(ParserValueTypeEnum enumValue) { - switch (enumValue) { - case INT: - return "INT"; - break; - case FLOAT: - return "FLOAT"; - break; - case STRING: - return "STRING"; - break; - default: - throw std::invalid_argument("Implementation error - should NOT be here"); - } - } - - - ParserValueTypeEnum ParserValueTypeEnumFromString(const std::string& stringValue) { - if (stringValue == "INT") - return INT; - else if (stringValue == "FLOAT") - return FLOAT; - else if (stringValue == "DOUBLE") - return DOUBLE; - else if (stringValue == "STRING") - return STRING; - else - throw std::invalid_argument("String: " + stringValue + " can not be converted to enum value"); - } - - /*****************************************************************/ - const std::string ParserKeywordActionEnum2String(ParserKeywordActionEnum enumValue) { switch (enumValue) { case INTERNALIZE: diff --git a/src/opm/parser/eclipse/Parser/ParserKeyword.cpp b/src/opm/parser/eclipse/Parser/ParserKeyword.cpp index 60d0a791f..35288d8bc 100644 --- a/src/opm/parser/eclipse/Parser/ParserKeyword.cpp +++ b/src/opm/parser/eclipse/Parser/ParserKeyword.cpp @@ -352,52 +352,51 @@ void set_dimensions( ParserItem& item, if (!dataConfig.has_item("value_type") ) throw std::invalid_argument("The 'value_type' JSON item of keyword "+getName()+" is missing"); - ParserValueTypeEnum valueType = ParserValueTypeEnumFromString(dataConfig.get_string("value_type")); + const std::string value_type = dataConfig.get_string("value_type"); const std::string itemName("data"); bool hasDefault = dataConfig.has_item("default"); - - ParserRecord record; ParserItem item( itemName, ParserItem::item_size::ALL ); + ParserRecord record; - switch (valueType) { - case INT: - { - item.setType( int() ); - if(hasDefault) { - int defaultValue = dataConfig.get_int("default"); - item.setDefault(defaultValue); - } - record.addDataItem( item ); - } - break; - case STRING: - { - item.setType( std::string() ); - if (hasDefault) { - std::string defaultValue = dataConfig.get_string("default"); - item.setDefault(defaultValue); - } - record.addItem( item ); - } - break; - case DOUBLE: - { - item.setType( double() ); - if (hasDefault) { - double defaultValue = dataConfig.get_double("default"); - item.setDefault(defaultValue); - } - set_dimensions( item, dataConfig, this->getName() ); - record.addDataItem( item ); - } - break; - default: - throw std::invalid_argument("While initializing keyword "+getName()+": Values of type "+dataConfig.get_string("value_type")+" are not implemented."); + if (value_type == "INT") { + item.setType( int() ); + if(hasDefault) { + int defaultValue = dataConfig.get_int("default"); + item.setDefault(defaultValue); + } + record.addDataItem(item); + this->addDataRecord(record); + return; } - this->addDataRecord( record ); + + if (value_type == "STRING") { + item.setType( std::string() ); + if (hasDefault) { + std::string defaultValue = dataConfig.get_string("default"); + item.setDefault(defaultValue); + } + record.addDataItem(item); + this->addDataRecord(record); + return; + } + + if (value_type == "DOUBLE") { + item.setType( double() ); + if (hasDefault) { + double defaultValue = dataConfig.get_double("default"); + item.setDefault(defaultValue); + } + set_dimensions( item, dataConfig, this->getName() ); + record.addDataItem(item); + this->addDataRecord(record); + return; + } + + throw std::invalid_argument("While initializing keyword "+getName()+": Values of type "+dataConfig.get_string("value_type")+" are not implemented."); } + const ParserRecord& ParserKeyword::getRecord(size_t recordIndex) const { if( this->m_records.empty() ) throw std::invalid_argument( "Trying to get record from empty keyword" ); @@ -430,7 +429,7 @@ void set_dimensions( ParserItem& item, } - void ParserKeyword::addDataRecord( ParserRecord record ) { + void ParserKeyword::addDataRecord( ParserRecord record) { if ((m_keywordSizeType == FIXED) && (m_fixedSize == 1U)) addRecord( std::move( record ) ); else diff --git a/tests/parser/ParserTests.cpp b/tests/parser/ParserTests.cpp index cdcdf1edb..c4bff512d 100644 --- a/tests/parser/ParserTests.cpp +++ b/tests/parser/ParserTests.cpp @@ -1762,35 +1762,6 @@ BOOST_AUTO_TEST_CASE(TestKeywordSizeEnumLoop) { } -/*****************************************************************/ - - -BOOST_AUTO_TEST_CASE(TestValueTypeEnum2String) { - BOOST_CHECK_EQUAL( "INT" , ParserValueTypeEnum2String(INT)); - BOOST_CHECK_EQUAL( "FLOAT" , ParserValueTypeEnum2String(FLOAT)); - BOOST_CHECK_EQUAL( "STRING" , ParserValueTypeEnum2String(STRING)); -} - - -BOOST_AUTO_TEST_CASE(TestValueTypeEnumFromString) { - BOOST_CHECK_THROW( ParserValueTypeEnumFromString("XXX") , std::invalid_argument ); - BOOST_CHECK_EQUAL( INT , ParserValueTypeEnumFromString("INT")); - BOOST_CHECK_EQUAL( STRING , ParserValueTypeEnumFromString("STRING")); - BOOST_CHECK_EQUAL( FLOAT , ParserValueTypeEnumFromString("FLOAT")); -} - - - -BOOST_AUTO_TEST_CASE(TestValueTypeEnumLoop) { - BOOST_CHECK_EQUAL( INT , ParserValueTypeEnumFromString( ParserValueTypeEnum2String( INT ) )); - BOOST_CHECK_EQUAL( FLOAT , ParserValueTypeEnumFromString( ParserValueTypeEnum2String( FLOAT ) )); - BOOST_CHECK_EQUAL( STRING , ParserValueTypeEnumFromString( ParserValueTypeEnum2String( STRING ) )); - - BOOST_CHECK_EQUAL( "INT" , ParserValueTypeEnum2String(ParserValueTypeEnumFromString( "INT" ) )); - BOOST_CHECK_EQUAL( "FLOAT" , ParserValueTypeEnum2String(ParserValueTypeEnumFromString( "FLOAT" ) )); - BOOST_CHECK_EQUAL( "STRING" , ParserValueTypeEnum2String(ParserValueTypeEnumFromString( "STRING" ) )); -} - /*****************************************************************/