summaryrefslogtreecommitdiff
path: root/slicer/db/sqlSelectDeserializer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'slicer/db/sqlSelectDeserializer.cpp')
-rw-r--r--slicer/db/sqlSelectDeserializer.cpp69
1 files changed, 31 insertions, 38 deletions
diff --git a/slicer/db/sqlSelectDeserializer.cpp b/slicer/db/sqlSelectDeserializer.cpp
index ff16c43..8982958 100644
--- a/slicer/db/sqlSelectDeserializer.cpp
+++ b/slicer/db/sqlSelectDeserializer.cpp
@@ -1,13 +1,11 @@
#include "sqlSelectDeserializer.h"
#include "sqlSource.h"
-#include <sqlExceptions.h>
#include <common.h>
+#include <sqlExceptions.h>
namespace Slicer {
SqlSelectDeserializer::SqlSelectDeserializer(DB::SelectCommand * c, Ice::optional<std::string> tc) :
- cmd(c),
- columnCount(0),
- typeIdColName(std::move(tc))
+ cmd(c), columnCount(0), typeIdColName(std::move(tc))
{
}
@@ -20,13 +18,13 @@ namespace Slicer {
typeIdColIdx = cmd->getOrdinal(*typeIdColName);
}
switch (mp->GetType()) {
- case Slicer::mpt_Sequence:
+ case Slicer::ModelPartType::Sequence:
DeserializeSequence(mp);
return;
- case Slicer::mpt_Complex:
+ case Slicer::ModelPartType::Complex:
DeserializeObject(mp);
return;
- case Slicer::mpt_Simple:
+ case Slicer::ModelPartType::Simple:
DeserializeSimple(mp);
return;
default:
@@ -74,7 +72,7 @@ namespace Slicer {
}
DeserializeRow(mp);
if (cmd->fetch()) {
- while (cmd->fetch()) {}
+ while (cmd->fetch()) { }
throw TooManyRowsReturned();
}
}
@@ -85,43 +83,38 @@ namespace Slicer {
auto rmp = mp->GetAnonChild();
if (rmp) {
switch (rmp->GetType()) {
- case Slicer::mpt_Complex:
- {
- if (typeIdColIdx) {
- std::string subclass;
- (*cmd)[*typeIdColIdx] >> subclass;
- rmp = rmp->GetSubclassModelPart(subclass);
- }
- rmp->Create();
- for (auto col = 0U; col < columnCount; col += 1) {
- const DB::Column & c = (*cmd)[col];
- if (!c.isNull()) {
- auto fmpr = rmp->GetChildRef(c.name, nullptr, false);
- if (fmpr) {
- auto fmp = fmpr.Child();
- fmp->Create();
- fmp->SetValue(SqlSource(c));
- fmp->Complete();
- }
- }
- }
- rmp->Complete();
+ case Slicer::ModelPartType::Complex: {
+ if (typeIdColIdx) {
+ std::string subclass;
+ (*cmd)[*typeIdColIdx] >> subclass;
+ rmp = rmp->GetSubclassModelPart(subclass);
}
- break;
- case Slicer::mpt_Simple:
- {
- rmp->Create();
- const DB::Column & c = (*cmd)[0];
+ rmp->Create();
+ for (auto col = 0U; col < columnCount; col += 1) {
+ const DB::Column & c = (*cmd)[col];
if (!c.isNull()) {
- rmp->SetValue(SqlSource(c));
+ auto fmpr = rmp->GetChildRef(c.name, nullptr, false);
+ if (fmpr) {
+ auto fmp = fmpr.Child();
+ fmp->Create();
+ fmp->SetValue(SqlSource(c));
+ fmp->Complete();
+ }
}
- rmp->Complete();
}
- break;
+ rmp->Complete();
+ } break;
+ case Slicer::ModelPartType::Simple: {
+ rmp->Create();
+ const DB::Column & c = (*cmd)[0];
+ if (!c.isNull()) {
+ rmp->SetValue(SqlSource(c));
+ }
+ rmp->Complete();
+ } break;
default:
throw UnsupportedModelType();
}
}
}
}
-