#ifndef LANGUAGECONFIG_H #define LANGUAGECONFIG_H #include #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 name_mangling_rules); std::shared_ptr typeMappings() const; void setTypeMappings(std::shared_ptr type_mappings); std::shared_ptr structureTemplate() const; void setStructureTemplate(std::shared_ptr structure_template); std::shared_ptr indentationConfig() const; void setIndentationConfig(std::shared_ptr indentation_config); std::shared_ptr resultLoopTemplate() const; void setResultLoopTemplate(std::shared_ptr result_loop_template); private: /** Default template for declaring a variable of the correct type. * exmaple: "{$type} {$varname};" */ //QString varDeclTemplate; std::shared_ptr m_varNaming; std::shared_ptr m_typeMappings; std::shared_ptr m_structureTemplate; std::shared_ptr m_indentationConfig; std::shared_ptr m_resultLoopTemplate; enum class VariableStrategy { UseLocalVariables, DeclareClass }; }; #endif // LANGUAGECONFIG_H