From 71f070a5099361d2c1b3922f47dacdaca60dfcf7 Mon Sep 17 00:00:00 2001 From: dismine Date: Thu, 11 Dec 2014 18:14:02 +0200 Subject: [PATCH] Validation version. --HG-- branch : feature --- src/libs/ifc/xml/vabstractconverter.cpp | 24 ++++++++++++++++++++++++ src/libs/ifc/xml/vabstractconverter.h | 1 + 2 files changed, 25 insertions(+) diff --git a/src/libs/ifc/xml/vabstractconverter.cpp b/src/libs/ifc/xml/vabstractconverter.cpp index 0b9d2c220..27aab8c92 100644 --- a/src/libs/ifc/xml/vabstractconverter.cpp +++ b/src/libs/ifc/xml/vabstractconverter.cpp @@ -29,12 +29,16 @@ #include "vabstractconverter.h" #include "exception/vexception.h" +#include + //--------------------------------------------------------------------------------------------------------------------- VAbstractConverter::VAbstractConverter(const QString &fileName) :VDomDocument(), fileName(fileName) { this->setXMLContent(fileName); QString version = GetVersionStr(); + ValidateVersion(version); + } //--------------------------------------------------------------------------------------------------------------------- @@ -64,3 +68,23 @@ QString VAbstractConverter::GetVersionStr() const } return QString(QStringLiteral("0.0.0")); } + +//--------------------------------------------------------------------------------------------------------------------- +void VAbstractConverter::ValidateVersion(QString &versionStr) const +{ + int pos = 0; + QRegExp rx(QStringLiteral("^(0|([1-9][0-9]*)).(0|([1-9][0-9]*)).(0|([1-9][0-9]*))$")); + QRegExpValidator v(rx, 0); + + if (v.validate(versionStr, pos) != QValidator::Acceptable) + { + const QString errorMsg(tr("Version \"%1\" invalid.").arg(versionStr)); + throw VException(errorMsg); + } + + if (versionStr == QLatin1String("0.0.0")) + { + const QString errorMsg(tr("Version \"0.0.0\" invalid.")); + throw VException(errorMsg); + } +} diff --git a/src/libs/ifc/xml/vabstractconverter.h b/src/libs/ifc/xml/vabstractconverter.h index 3886b042e..ffd921451 100644 --- a/src/libs/ifc/xml/vabstractconverter.h +++ b/src/libs/ifc/xml/vabstractconverter.h @@ -43,6 +43,7 @@ private: QString fileName; QString GetVersionStr() const; + void ValidateVersion(QString &versionStr) const; }; #endif // VABSTRACTCONVERTER_H