Removed public property from RawKeyword class

This commit is contained in:
Joakim Hove
2019-08-15 12:23:29 +02:00
parent e3ade4dff9
commit 79a2c1bd4d
5 changed files with 52 additions and 33 deletions

View File

@@ -40,8 +40,18 @@ namespace Opm {
class RawKeyword {
public:
RawKeyword(const string_view& name , Raw::KeywordSizeEnum sizeType , const std::string& filename, size_t lineNR);
RawKeyword(const string_view& name , const std::string& filename, size_t lineNR , size_t inputSize , bool isTableCollection = false);
RawKeyword(const string_view& name,
Raw::KeywordSizeEnum sizeType,
const std::string& filename,
size_t lineNR,
bool slash_terminated);
RawKeyword(const string_view& name,
const std::string& filename,
size_t lineNR ,
size_t inputSize,
bool slash_terminated,
bool isTableCollection);
const std::string& getKeywordName() const;
void addRawRecordString( const string_view& );
@@ -60,6 +70,7 @@ namespace Opm {
bool unKnownSize() const;
void finalizeUnknownSize();
void terminateRecord();
bool slashTerminatedRecords() const;
const std::string& getFilename() const;
size_t getLineNR() const;
@@ -73,7 +84,6 @@ namespace Opm {
iterator end();
bool is_title() const;
bool slash_terminated_records = true;
private:
Raw::KeywordSizeEnum m_sizeType;
bool m_isFinished = false;
@@ -82,6 +92,7 @@ namespace Opm {
size_t m_currentNumTables = 0;
std::string m_name;
std::list< RawRecord > m_records;
bool slash_terminated_records;
string_view m_partialRecordString;
size_t m_lineNR;

View File

@@ -453,8 +453,8 @@ std::shared_ptr<RawKeyword> createRawKeyword(const ParserKeyword& parserKeyword,
auto raw_keyword = std::make_shared< RawKeyword >( keywordString, rawSizeType,
parserState.current_path().string(),
parserState.line() );
raw_keyword->slash_terminated_records = slash_terminated_records;
parserState.line(),
slash_terminated_records);
return raw_keyword;
}
@@ -463,8 +463,8 @@ std::shared_ptr<RawKeyword> createRawKeyword(const ParserKeyword& parserKeyword,
parserState.current_path().string(),
parserState.line(),
parserKeyword.getFixedSize(),
slash_terminated_records,
parserKeyword.isTableCollection() );
raw_keyword->slash_terminated_records = slash_terminated_records;
return raw_keyword;
}
@@ -479,8 +479,8 @@ std::shared_ptr<RawKeyword> createRawKeyword(const ParserKeyword& parserKeyword,
parserState.current_path().string(),
parserState.line(),
targetSize,
slash_terminated_records,
parserKeyword.isTableCollection() );
raw_keyword->slash_terminated_records = slash_terminated_records;
return raw_keyword;
}
@@ -497,8 +497,8 @@ std::shared_ptr<RawKeyword> createRawKeyword(const ParserKeyword& parserKeyword,
parserState.current_path().string(),
parserState.line(),
targetSize,
slash_terminated_records,
parserKeyword.isTableCollection() );
raw_keyword->slash_terminated_records = slash_terminated_records;
return raw_keyword;
}
@@ -595,7 +595,7 @@ bool tryParseKeyword( ParserState& parserState, const Parser& parser ) {
}
}
if (parserState.rawKeyword->slash_terminated_records)
if (parserState.rawKeyword->slashTerminatedRecords())
line = strip_slash(line);
else
line = strip_last_slash(line);

View File

@@ -29,7 +29,8 @@ namespace Opm {
static const std::string emptystr = "";
RawKeyword::RawKeyword(const string_view& name, Raw::KeywordSizeEnum sizeType , const std::string& filename, size_t lineNR) :
RawKeyword::RawKeyword(const string_view& name, Raw::KeywordSizeEnum sizeType , const std::string& filename, size_t lineNR, bool slash_terminated) :
slash_terminated_records(slash_terminated),
m_partialRecordString( emptystr )
{
if (sizeType == Raw::SLASH_TERMINATED || sizeType == Raw::UNKNOWN) {
@@ -39,7 +40,9 @@ namespace Opm {
throw std::invalid_argument("Error - invalid sizetype on input");
}
RawKeyword::RawKeyword(const string_view& name , const std::string& filename, size_t lineNR , size_t inputSize, bool isTableCollection ) {
RawKeyword::RawKeyword(const string_view& name , const std::string& filename, size_t lineNR , size_t inputSize, bool slash_terminated, bool isTableCollection ) :
slash_terminated_records(slash_terminated)
{
commonInit(name.string(),filename,lineNR);
if (isTableCollection) {
m_sizeType = Raw::TABLE_COLLECTION;
@@ -206,5 +209,10 @@ namespace Opm {
Raw::KeywordSizeEnum RawKeyword::getSizeType() const {
return m_sizeType;
}
bool RawKeyword::slashTerminatedRecords() const {
return this->slash_terminated_records;
}
}

View File

@@ -1612,7 +1612,7 @@ BOOST_AUTO_TEST_CASE(ParseEmptyRecord) {
const auto& tabdimsKeyword = createFixedSized("TEST" , 1);
ParserRecord record;
ParserItem item("ITEM", INT);
auto rawkeyword = std::make_shared< RawKeyword >( tabdimsKeyword->getName() , "FILE" , 10U , 1 );
auto rawkeyword = std::make_shared< RawKeyword >( tabdimsKeyword->getName() , "FILE" , 10U , 1 , true, false);
ParseContext parseContext;
ErrorGuard errors;

View File

@@ -30,24 +30,24 @@
using namespace Opm;
BOOST_AUTO_TEST_CASE(RawKeywordGiveKeywordToConstructorKeywordSet) {
RawKeyword keyword("KEYYWORD", Raw::SLASH_TERMINATED , "FILE" , 10U);
RawKeyword keyword("KEYYWORD", Raw::SLASH_TERMINATED , "FILE" , 10U, true);
BOOST_CHECK(keyword.getKeywordName() == "KEYYWORD");
BOOST_CHECK_EQUAL(Raw::SLASH_TERMINATED , keyword.getSizeType());
}
BOOST_AUTO_TEST_CASE(RawKeywordSizeTypeInvalidThrows) {
BOOST_CHECK_THROW( RawKeyword("KEYYWORD", Raw::FIXED , "FILE" , 0U) , std::invalid_argument);
BOOST_CHECK_THROW( RawKeyword("KEYYWORD", Raw::TABLE_COLLECTION , "FILE" , 10U) , std::invalid_argument);
BOOST_CHECK_THROW( RawKeyword("KEYYWORD", Raw::FIXED , "FILE" , 0U, true) , std::invalid_argument);
BOOST_CHECK_THROW( RawKeyword("KEYYWORD", Raw::TABLE_COLLECTION , "FILE" , 10U, true) , std::invalid_argument);
}
BOOST_AUTO_TEST_CASE(RawKeywordFinalizeWrongSizeTYpeThrows) {
RawKeyword kw("KEYYWORD", Raw::SLASH_TERMINATED , "FILE" , 0U);
RawKeyword kw("KEYYWORD", Raw::SLASH_TERMINATED , "FILE" , 0U, true);
BOOST_CHECK_THROW( kw.finalizeUnknownSize() , std::invalid_argument );
}
BOOST_AUTO_TEST_CASE(RawKeywordFinalizeUnknownSize) {
RawKeyword kw("KEYYWORD", Raw::UNKNOWN , "FILE" , 0U);
RawKeyword kw("KEYYWORD", Raw::UNKNOWN , "FILE" , 0U, true);
BOOST_CHECK( !kw.isFinished() );
kw.finalizeUnknownSize();
BOOST_CHECK( kw.isFinished() );
@@ -57,34 +57,34 @@ BOOST_AUTO_TEST_CASE(RawKeywordFinalizeUnknownSize) {
BOOST_AUTO_TEST_CASE(RawKeywordGiveKeywordToConstructorTooLongThrows) {
BOOST_CHECK_THROW(RawKeyword keyword("KEYYYWORD", Raw::SLASH_TERMINATED , "FILE" , 10U), std::invalid_argument);
BOOST_CHECK_THROW(RawKeyword keyword("KEYYYWORD", Raw::SLASH_TERMINATED , "FILE" , 10U, true), std::invalid_argument);
}
BOOST_AUTO_TEST_CASE(RawKeywordSetKeywordInitialWhitespaceInKeywordThrows) {
BOOST_CHECK_THROW(RawKeyword(" TELONG", Raw::SLASH_TERMINATED, "FILE" , 10U), std::invalid_argument);
BOOST_CHECK_THROW(RawKeyword(" TELONG", Raw::SLASH_TERMINATED, "FILE" , 10U, true), std::invalid_argument);
}
BOOST_AUTO_TEST_CASE(constructor_mixedCaseName_throws) {
BOOST_CHECK_NO_THROW(RawKeyword("Test", Raw::SLASH_TERMINATED , "FILE" , 10U));
BOOST_CHECK_NO_THROW(RawKeyword("Test", Raw::SLASH_TERMINATED , "FILE" , 10U, true));
}
BOOST_AUTO_TEST_CASE(RawKeywordSetKeywordInitialTabInKeywordThrows) {
BOOST_CHECK_THROW( RawKeyword("\tTELONG", Raw::SLASH_TERMINATED , "FILE" , 10U), std::invalid_argument);
BOOST_CHECK_THROW( RawKeyword("\tTELONG", Raw::SLASH_TERMINATED , "FILE" , 10U, true), std::invalid_argument);
}
BOOST_AUTO_TEST_CASE(RawKeywordSetCorrectLenghtKeywordNoError) {
RawKeyword keyword("GOODONE", Raw::SLASH_TERMINATED , "FILE" , 10U);
RawKeyword keyword("GOODONE", Raw::SLASH_TERMINATED , "FILE" , 10U, true);
BOOST_CHECK(keyword.getKeywordName() == "GOODONE");
}
BOOST_AUTO_TEST_CASE(RawKeywordSet8CharKeywordWithTrailingWhitespaceKeywordTrimmed) {
RawKeyword keyword("GOODONEE ", Raw::SLASH_TERMINATED , "FILE" , 10U);
RawKeyword keyword("GOODONEE ", Raw::SLASH_TERMINATED , "FILE" , 10U, true);
BOOST_CHECK(keyword.getKeywordName() == "GOODONEE");
}
BOOST_AUTO_TEST_CASE(addRecord_singleRecord_recordAdded) {
RawKeyword keyword("TEST", Raw::SLASH_TERMINATED , "FILE" , 10U);
RawKeyword keyword("TEST", Raw::SLASH_TERMINATED , "FILE" , 10U, true);
keyword.addRawRecordString("test 1 3 4 /");
BOOST_CHECK_EQUAL(1U, keyword.size());
}
@@ -107,7 +107,7 @@ BOOST_AUTO_TEST_CASE(isFinished_undef_size) {
string_view finalizer1( inputstr + ln2, inputstr + ln3 );
string_view finalizer2( inputstr + ln3 , inputstr + ln4 );
RawKeyword keyword("TEST", Raw::SLASH_TERMINATED , "FILE" , 10U);
RawKeyword keyword("TEST", Raw::SLASH_TERMINATED , "FILE" , 10U, true);
BOOST_CHECK( !keyword.isFinished() );
keyword.addRawRecordString( incomplete1 );
@@ -122,13 +122,13 @@ BOOST_AUTO_TEST_CASE(isFinished_undef_size) {
BOOST_AUTO_TEST_CASE(isFinished_Fixedsize0) {
RawKeyword keyword("TEST" , "FILE" , 10U , 0U);
RawKeyword keyword("TEST" , "FILE" , 10U , 0U, true, false);
BOOST_CHECK( keyword.isFinished() );
}
BOOST_AUTO_TEST_CASE(isFinished_Fixedsize1) {
RawKeyword keyword("TEST" , "FILE" , 10U, 1U);
RawKeyword keyword("TEST" , "FILE" , 10U, 1U, true, false);
BOOST_CHECK( !keyword.isFinished() );
keyword.addRawRecordString("test 1 3 4 /");
BOOST_CHECK( keyword.isFinished() );
@@ -136,7 +136,7 @@ BOOST_AUTO_TEST_CASE(isFinished_Fixedsize1) {
BOOST_AUTO_TEST_CASE(isFinished_FixedsizeMulti) {
RawKeyword keyword("TEST", "FILE" , 10U , 4U);
RawKeyword keyword("TEST", "FILE" , 10U , 4U, true, false);
const char* inputstr = "test 1 2 3 4 //1 2 3 3 4 1 2 3 3 4 /1 2 3 3 /";
const size_t ln1 = std::strlen( "test 1 2 3 4 /" );
@@ -167,27 +167,27 @@ BOOST_AUTO_TEST_CASE(isFinished_FixedsizeMulti) {
}
BOOST_AUTO_TEST_CASE(isTableCollection) {
RawKeyword keyword1("TEST" , "FILE" , 10U, 4U , false);
RawKeyword keyword2("TEST2", Raw::SLASH_TERMINATED , "FILE" , 10U);
RawKeyword keyword1("TEST" , "FILE" , 10U, 4U ,true, false);
RawKeyword keyword2("TEST2", Raw::SLASH_TERMINATED , "FILE" , 10U, true);
BOOST_CHECK_EQUAL( Raw::FIXED , keyword1.getSizeType());
BOOST_CHECK_EQUAL( Raw::SLASH_TERMINATED , keyword2.getSizeType());
}
BOOST_AUTO_TEST_CASE(CreateTableCollection) {
RawKeyword keyword1("TEST" , "FILE" , 10U, 2, true);
RawKeyword keyword1("TEST" , "FILE" , 10U, 2, true, true);
BOOST_CHECK_EQUAL( Raw::TABLE_COLLECTION , keyword1.getSizeType());
}
BOOST_AUTO_TEST_CASE(CreateWithFileAndLine) {
RawKeyword keyword1("TEST" , Raw::SLASH_TERMINATED , "XXX", 100);
RawKeyword keyword1("TEST" , Raw::SLASH_TERMINATED , "XXX", 100, true);
BOOST_CHECK_EQUAL( "XXX" , keyword1.getFilename());
BOOST_CHECK_EQUAL( 100U , keyword1.getLineNR() );
}
BOOST_AUTO_TEST_CASE(isUnknownSize) {
RawKeyword keyword("TEST2", Raw::UNKNOWN , "FILE" , 10U);
RawKeyword keyword("TEST2", Raw::UNKNOWN , "FILE" , 10U, true);
BOOST_CHECK_EQUAL( Raw::UNKNOWN , keyword.getSizeType( ));
}