mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2066 Observed Data : Improve error reporting
This commit is contained in:
@@ -51,14 +51,14 @@ RifColumnBasedUserData::~RifColumnBasedUserData()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RifColumnBasedUserData::parse(const QString& data)
|
||||
bool RifColumnBasedUserData::parse(const QString& data, QString* errorText)
|
||||
{
|
||||
m_allResultAddresses.clear();
|
||||
m_timeSteps.clear();
|
||||
m_mapFromAddressToTimeStepIndex.clear();
|
||||
m_mapFromAddressToResultIndex.clear();
|
||||
|
||||
m_parser = std::unique_ptr<RifColumnBasedUserDataParser>(new RifColumnBasedUserDataParser(data));
|
||||
m_parser = std::unique_ptr<RifColumnBasedUserDataParser>(new RifColumnBasedUserDataParser(data, errorText));
|
||||
if (!m_parser)
|
||||
{
|
||||
RiaLogging::error(QString("Failed to parse file"));
|
||||
|
||||
@@ -40,7 +40,7 @@ public:
|
||||
RifColumnBasedUserData();
|
||||
~RifColumnBasedUserData();
|
||||
|
||||
bool parse(const QString& data);
|
||||
bool parse(const QString& data, QString* errorText = nullptr);
|
||||
|
||||
virtual const std::vector<time_t>& timeSteps(const RifEclipseSummaryAddress& resultAddress) const override;
|
||||
|
||||
|
||||
@@ -33,7 +33,8 @@
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifColumnBasedUserDataParser::RifColumnBasedUserDataParser(const QString& data)
|
||||
RifColumnBasedUserDataParser::RifColumnBasedUserDataParser(const QString& data, QString* errorText)
|
||||
: m_errorText(errorText)
|
||||
{
|
||||
parseTableData(data);
|
||||
}
|
||||
@@ -70,7 +71,18 @@ void RifColumnBasedUserDataParser::parseTableData(const QString& data)
|
||||
|
||||
do
|
||||
{
|
||||
auto table = RifEclipseUserDataParserTools::tableDataFromText(streamData);
|
||||
std::vector<std::string> errorStrings;
|
||||
|
||||
auto table = RifEclipseUserDataParserTools::tableDataFromText(streamData, &errorStrings);
|
||||
if (m_errorText)
|
||||
{
|
||||
for (auto s : errorStrings)
|
||||
{
|
||||
QString errorText = QString("\n%1").arg(QString::fromStdString(s));
|
||||
m_errorText->append(errorText);
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<ColumnInfo>& columnInfos = table.columnInfos();
|
||||
int columnCount = static_cast<int>(columnInfos.size());
|
||||
if (columnCount == 0) break;
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include "RifEclipseSummaryAddress.h"
|
||||
|
||||
#include <QString>
|
||||
#include <QPointer>
|
||||
|
||||
#include <vector>
|
||||
|
||||
@@ -33,7 +34,7 @@ class TableData;
|
||||
class RifColumnBasedUserDataParser
|
||||
{
|
||||
public:
|
||||
RifColumnBasedUserDataParser(const QString& data);
|
||||
RifColumnBasedUserDataParser(const QString& data, QString* errorText = nullptr);
|
||||
const std::vector<TableData>& tableData() const;
|
||||
|
||||
const ColumnInfo* columnInfo(size_t tableIndex, size_t columnIndex) const;
|
||||
@@ -42,5 +43,6 @@ private:
|
||||
void parseTableData(const QString& data);
|
||||
|
||||
private:
|
||||
std::vector<TableData> m_tableDatas;
|
||||
std::vector<TableData> m_tableDatas;
|
||||
QString* m_errorText;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user