config as it is very specific to the PgLab codebase. More hard programmed templates moved out of codebuilder to the language config.
48 lines
1.6 KiB
C++
48 lines
1.6 KiB
C++
#ifndef LANGUAGECONFIG_H
|
|
#define LANGUAGECONFIG_H
|
|
|
|
#include <QString>
|
|
#include "Pgsql_oids.h"
|
|
|
|
class NameManglingRules;
|
|
class TypeMappings;
|
|
class StructureTemplate;
|
|
class IndentationConfig;
|
|
class ResultLoopTemplate;
|
|
/**
|
|
*
|
|
*/
|
|
class LanguageConfig {
|
|
public:
|
|
LanguageConfig();
|
|
|
|
QString columnNameToFieldName(const QString& column_name) const;
|
|
QString getTypeName(Oid dbtype) const;
|
|
|
|
void setNameManglingRules(std::shared_ptr<const NameManglingRules> name_mangling_rules);
|
|
std::shared_ptr<const TypeMappings> typeMappings() const;
|
|
void setTypeMappings(std::shared_ptr<const TypeMappings> type_mappings);
|
|
std::shared_ptr<const StructureTemplate> structureTemplate() const;
|
|
void setStructureTemplate(std::shared_ptr<const StructureTemplate> structure_template);
|
|
std::shared_ptr<const IndentationConfig> indentationConfig() const;
|
|
void setIndentationConfig(std::shared_ptr<const IndentationConfig> indentation_config);
|
|
std::shared_ptr<const ResultLoopTemplate> resultLoopTemplate() const;
|
|
void setResultLoopTemplate(std::shared_ptr<const ResultLoopTemplate> result_loop_template);
|
|
private:
|
|
/** Default template for declaring a variable of the correct type.
|
|
* exmaple: "{$type} {$varname};"
|
|
*/
|
|
//QString varDeclTemplate;
|
|
std::shared_ptr<const NameManglingRules> m_varNaming;
|
|
std::shared_ptr<const TypeMappings> m_typeMappings;
|
|
std::shared_ptr<const StructureTemplate> m_structureTemplate;
|
|
std::shared_ptr<const IndentationConfig> m_indentationConfig;
|
|
std::shared_ptr<const ResultLoopTemplate> m_resultLoopTemplate;
|
|
|
|
enum class VariableStrategy {
|
|
UseLocalVariables,
|
|
DeclareClass
|
|
};
|
|
};
|
|
|
|
#endif // LANGUAGECONFIG_H
|