#include "DaoGeneratorGrantlee.h" #include "StructBuilder.h" #include #include using namespace CodeGen; DaoGeneratorGrantlee::DaoGeneratorGrantlee() : GeneratorGrantleeBase("CodeGen.DaoGeneratorGrantlee") {} bool DaoGeneratorGrantlee::init(const XmlReader *reader, StructBuilder *structBuilder) { if (!GeneratorGrantleeBase::initInternal(reader, structBuilder)) return false; if (reader->isServiceExerciseIndependent()) m_ctx->insert(QStringLiteral("isExerciseIndependent"), QLatin1String("1")); bool bHasDbNotifications = false; QVector vlServiceStructs; QVector vlStaticDataStructs; const QVector csiData = structBuilder->structInformations(); vlServiceStructs.reserve(csiData.size()); vlStaticDataStructs.reserve(csiData.size()); for (const CompleteStructInformation &csi : csiData) { DbStructWrapper *dbStructWrapper(new DbStructWrapper(csi, this)); if (csi.hasStaticContent) vlStaticDataStructs += dbStructWrapper; else vlServiceStructs += dbStructWrapper; if (!csi.dbNotifications.isEmpty()) bHasDbNotifications = true; } if (structBuilder->needPoint3d()) m_ctx->insert(QStringLiteral("need_point3d"), QLatin1String("1")); if (structBuilder->needPgArrayInclude()) m_ctx->insert(QStringLiteral("need_pgarray"), QLatin1String("1")); m_ctx->insert(QStringLiteral("cpp_structs"), QVariant::fromValue(vlServiceStructs)); m_ctx->insert(QStringLiteral("data_structs"), QVariant::fromValue(vlStaticDataStructs)); if (bHasDbNotifications) m_ctx->insert(QStringLiteral("has_db_notifications"), QLatin1String("1")); m_ctx->insert(QStringLiteral("library_target"), QStringLiteral("COMMON")); exportUsedServices(reader); return true; }