kDB: Knowledge DataBase
Loading...
Searching...
No Matches
CodeGenerator.h
1#include <parc/generators/QtBaseCodeGenerator.h>
2
3class QTextStream;
4
5
6class CodeGenerator : public parc::generators::QtBaseCodeGenerator
7{
8public:
9 CodeGenerator(parc::AbstractQueryGenerator* _aqg);
10 virtual ~CodeGenerator();
11 bool canGenerate(const parc::definitions::Database* _database, QString* _reason) override;
12protected:
13 void generateDatabase(const parc::definitions::Database* _database, const QString& _destination) override;
14 void generateClass(const parc::definitions::Database* _database, const parc::definitions::Class* _klass, const QString& _destination) override;
15 void generateJournal(const parc::definitions::Database* _database, const QString& _destination) override;
16 QString cppType(const parc::SqlType* _sqlType) const override;
17 QString cppMemberType(const parc::SqlType* _sqlType) const override;
18 QString cppArgType(const parc::SqlType* _sqlType) const override;
19 QString cppReturnType(const parc::SqlType* _sqlType) const override;
20 using parc::generators::QtBaseCodeGenerator::cppType;
21 using parc::generators::QtBaseCodeGenerator::cppMemberType;
22 using parc::generators::QtBaseCodeGenerator::cppArgType;
23 using parc::generators::QtBaseCodeGenerator::cppReturnType;
24 QString defaultValue(const parc::definitions::Field* _field) const override;
25private:
31 bool hasDefaultBaseValueConstructor(const parc::definitions::Class* _klass) const;
32 QString databaseOrContainer(const parc::definitions::Class* _klass) const;
33 QString databaseOrContainerParameterName(const parc::definitions::Class* _klass) const;
34 QString databaseOrContainerMemberName(const parc::definitions::Class* _klass) const;
35 virtual QString queryResultToMember(const parc::SqlType* _sqlType, const QString& _value) const;
36 using parc::generators::QtBaseCodeGenerator::queryResultToMember;
37 virtual QString queryResultToConstructor(const parc::SqlType* _sqlType, const QString& _value) const;
38 using parc::generators::QtBaseCodeGenerator::queryResultToConstructor;
39 void makeResultList(QTextStream& body_stream, const parc::definitions::Class* _klass) const;
40 void setKeysOnQuery(QTextStream& _stream, const QString& _query, const parc::definitions::Class* _klass) const;
41 QString memberToValue(const parc::definitions::Field* _field, const QString& _member_prefix_template) const;
45 QString baseValueClassName(const parc::definitions::Class* _klass) const;
50 bool hasExtendedValueClass(const parc::definitions::Class* _klass) const;
51
52 bool isBaseValueField(const parc::definitions::Class* _klass, const parc::definitions::Field* _field) const;
53 bool isExtendedValueField(const parc::definitions::Class* _klass, const parc::definitions::Field* _field) const;
54 bool isRecordField(const parc::definitions::Class* _klass, const parc::definitions::Field* _field) const;
55
56 QString constructionArguments(const parc::definitions::Class* _klass, bool _with_types, bool _default_values, const std::function<bool(const parc::definitions::Field*)>& _filter) const;
57 QString baseValueConstructionArguments(const parc::definitions::Class* _klass, bool _with_types, bool _default_values) const;
58 QString extendedValueConstructionArguments(const parc::definitions::Class* _klass, bool _with_types, bool _default_values) const;
59 QString onlyExtendedValueConstructionArguments(const parc::definitions::Class* _klass, bool _with_types, bool _default_values) const;
60};
Definition CodeGenerator.h:7