kDB: Knowledge DataBase
Loading...
Searching...
No Matches
CodeGenerator.h
1#include <functional>
2
3#include <parc/generators/QtBaseCodeGenerator.h>
4
5class QTextStream;
6
7class CodeGenerator : public parc::generators::QtBaseCodeGenerator
8{
9public:
10 CodeGenerator(parc::AbstractQueryGenerator* _aqg);
11 virtual ~CodeGenerator();
12 bool canGenerate(const parc::definitions::Database* _database, QString* _reason) override;
13protected:
14 void generateDatabase(const parc::definitions::Database* _database,
15 const QString& _destination) override;
16 void generateClass(const parc::definitions::Database* _database,
17 const parc::definitions::Class* _klass, const QString& _destination) override;
18 void generateJournal(const parc::definitions::Database* _database,
19 const QString& _destination) override;
20 void generateView(const parc::definitions::Database* _database,
21 const parc::definitions::View* _view, const QString& _destination) override;
22 QString cppType(const parc::SqlType* _sqlType) const override;
23 QString cppMemberType(const parc::SqlType* _sqlType) const override;
24 QString cppArgType(const parc::SqlType* _sqlType) const override;
25 QString cppReturnType(const parc::SqlType* _sqlType) const override;
26 using parc::generators::QtBaseCodeGenerator::cppArgType;
27 using parc::generators::QtBaseCodeGenerator::cppMemberType;
28 using parc::generators::QtBaseCodeGenerator::cppReturnType;
29 using parc::generators::QtBaseCodeGenerator::cppType;
30 QString defaultValue(const parc::definitions::Field* _field) const override;
31private:
37 bool hasDefaultBaseValueConstructor(const parc::definitions::Class* _klass) const;
38 QString databaseOrContainer(const parc::definitions::Class* _klass) const;
39 QString databaseOrContainerParameterName(const parc::definitions::Class* _klass) const;
40 QString databaseOrContainerMemberName(const parc::definitions::Class* _klass) const;
41 virtual QString queryResultToMember(const parc::SqlType* _sqlType, const QString& _value) const;
42 using parc::generators::QtBaseCodeGenerator::queryResultToMember;
43 virtual QString queryResultToConstructor(const parc::SqlType* _sqlType,
44 const QString& _value) const;
45 using parc::generators::QtBaseCodeGenerator::queryResultToConstructor;
46 void makeResultList(QTextStream& body_stream, const parc::definitions::Class* _klass) const;
47 void setKeysOnQuery(QTextStream& _stream, const QString& _query,
48 const parc::definitions::Class* _klass) const;
49 QString memberToValue(const parc::definitions::Field* _field,
50 const QString& _member_prefix_template) const;
54 QString baseValueClassName(const parc::definitions::Class* _klass) const;
59 bool hasExtendedValueClass(const parc::definitions::Class* _klass) const;
60
61 bool isBaseValueField(const parc::definitions::Class* _klass,
62 const parc::definitions::Field* _field) const;
63 bool isExtendedValueField(const parc::definitions::Class* _klass,
64 const parc::definitions::Field* _field) const;
65 bool isRecordField(const parc::definitions::Class* _klass,
66 const parc::definitions::Field* _field) const;
67
68 QString constructionArguments(
69 const parc::definitions::Class* _klass, bool _with_types, bool _default_values,
70 const std::function<bool(const parc::definitions::Field*)>& _filter) const;
71 QString baseValueConstructionArguments(const parc::definitions::Class* _klass, bool _with_types,
72 bool _default_values) const;
73 QString extendedValueConstructionArguments(const parc::definitions::Class* _klass,
74 bool _with_types, bool _default_values) const;
75 QString onlyExtendedValueConstructionArguments(const parc::definitions::Class* _klass,
76 bool _with_types, bool _default_values) const;
77};
Definition CodeGenerator.h:8