From b63244228dbc019749c9e537bbe2ccb477f51d73 Mon Sep 17 00:00:00 2001 From: Joakim Hove Date: Wed, 9 Oct 2013 08:22:43 +0200 Subject: [PATCH] Added Parser::dropKeyword() --- opm/parser/eclipse/Parser/Parser.cpp | 7 +++++++ opm/parser/eclipse/Parser/Parser.hpp | 1 + opm/parser/eclipse/Parser/tests/ParserTests.cpp | 8 ++++++++ opm/parser/share/keywords/M/MAPUNITS | 3 +++ 4 files changed, 19 insertions(+) create mode 100644 opm/parser/share/keywords/M/MAPUNITS diff --git a/opm/parser/eclipse/Parser/Parser.cpp b/opm/parser/eclipse/Parser/Parser.cpp index f4b6e0eac..1f5bdcbd6 100644 --- a/opm/parser/eclipse/Parser/Parser.cpp +++ b/opm/parser/eclipse/Parser/Parser.cpp @@ -72,6 +72,13 @@ namespace Opm { return m_parserKeywords.find(keyword) != m_parserKeywords.end(); } + bool Parser::dropKeyword(const std::string& keyword) { + if (m_parserKeywords.erase( keyword ) == 1) + return true; + else + return false; + } + ParserKeywordConstPtr Parser::getKeyword(const std::string& keyword) const { if (hasKeyword(keyword)) { return m_parserKeywords.at(keyword); diff --git a/opm/parser/eclipse/Parser/Parser.hpp b/opm/parser/eclipse/Parser/Parser.hpp index 23f2ed43a..116a5a37f 100644 --- a/opm/parser/eclipse/Parser/Parser.hpp +++ b/opm/parser/eclipse/Parser/Parser.hpp @@ -47,6 +47,7 @@ namespace Opm { /// Method to add ParserKeyword instances, these holding type and size information about the keywords and their data. void addKeyword(ParserKeywordConstPtr parserKeyword); bool hasKeyword(const std::string& keyword) const; + bool dropKeyword(const std::string& keyword); ParserKeywordConstPtr getKeyword(const std::string& keyword) const; void loadKeywords(const Json::JsonObject& jsonKeywords); diff --git a/opm/parser/eclipse/Parser/tests/ParserTests.cpp b/opm/parser/eclipse/Parser/tests/ParserTests.cpp index 0be2a6e26..91cf3cc64 100644 --- a/opm/parser/eclipse/Parser/tests/ParserTests.cpp +++ b/opm/parser/eclipse/Parser/tests/ParserTests.cpp @@ -216,6 +216,14 @@ BOOST_AUTO_TEST_CASE(loadConfigFromDirectory_default) { } +BOOST_AUTO_TEST_CASE(DropKeyword) { + ParserPtr parser(new Parser()); + BOOST_CHECK_EQUAL(false , parser->dropKeyword("DoesNotHaveThis")); + BOOST_CHECK_EQUAL(true , parser->dropKeyword("BPR")); + BOOST_CHECK_EQUAL(false , parser->dropKeyword("BPR")); +} + + /***************** Simple Int parsing ********************************/ ParserKeywordPtr setupParserKeywordInt(std::string name, int numberOfItems) { diff --git a/opm/parser/share/keywords/M/MAPUNITS b/opm/parser/share/keywords/M/MAPUNITS new file mode 100644 index 000000000..7946114c3 --- /dev/null +++ b/opm/parser/share/keywords/M/MAPUNITS @@ -0,0 +1,3 @@ +{"name" : "MAPUNITS" , "size" : 1 , "items" : [ + {"name" : "UNIT" , "value_type" : "STRING" , "default" : "METRES"}]} +