#5434 Ensemble Parameters : Improve robustness Runspec reader

This commit is contained in:
Magne Sjaastad
2020-01-30 13:37:59 +01:00
parent 7de8b6bb08
commit 9b43335914

View File

@@ -245,6 +245,8 @@ void RifCaseRealizationRunspecificationReader::parse()
auto file = openFile(); auto file = openFile();
QXmlStreamReader xml( file ); QXmlStreamReader xml( file );
QStringList errors;
QString paramName; QString paramName;
while ( !xml.atEnd() ) while ( !xml.atEnd() )
@@ -269,30 +271,24 @@ void RifCaseRealizationRunspecificationReader::parse()
if ( paramName.isEmpty() ) continue; if ( paramName.isEmpty() ) continue;
if ( RiaStdStringTools::startsWithAlphabetic( paramStrValue.toStdString() ) ) if ( RiaStdStringTools::isNumber( paramStrValue.toStdString(), QLocale::c().decimalPoint().toLatin1() ) )
{ {
m_parameters->addParameter( paramName, paramStrValue ); bool parseOk = true;
double value = QLocale::c().toDouble( paramStrValue, &parseOk );
if ( parseOk )
{
m_parameters->addParameter( paramName, value );
} }
else else
{ {
if ( !RiaStdStringTools::isNumber( paramStrValue.toStdString(), errors << QString(
QLocale::c().decimalPoint().toLatin1() ) ) "RifCaseRealizationRunspecificationReader: Invalid number format in line %1" )
{ .arg( xml.lineNumber() );
throw FileParseException(
QString( "RifEnsembleParametersReader: Invalid number format in line %1" )
.arg( xml.lineNumber() ) );
} }
bool parseOk = true;
double value = QLocale::c().toDouble( paramStrValue, &parseOk );
if ( !parseOk )
{
throw FileParseException(
QString( "RifEnsembleParametersReader: Invalid number format in line %1" )
.arg( xml.lineNumber() ) );
} }
else
m_parameters->addParameter( paramName, value ); {
m_parameters->addParameter( paramName, paramStrValue );
} }
} }
} }
@@ -306,6 +302,11 @@ void RifCaseRealizationRunspecificationReader::parse()
} }
closeFile(); closeFile();
for ( const auto& s : errors )
{
RiaLogging::warning( s );
}
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------