11 #ifndef lgrHlaTableFactory_H_
12 #define lgrHlaTableFactory_H_
19 #include <vlutil/vlPrint.h>
23 class DtDatatypeFedNode;
26 class DtDatatypeManager;
30 class DtVariantDatatypeNode;
35 class DtLgrVariableLengthData;
36 class DtConstLgrHlaMessage;
43 DtLgrHlaTableFactory(
const DtLgrHlaTableFactory&);
44 DtLgrHlaTableFactory& operator=(
const DtLgrHlaTableFactory&);
49 DtLgrHlaTableFactory(DtOMTTree*,DtDatatypeManager*);
52 virtual ~DtLgrHlaTableFactory();
55 virtual void setUseShortTableNames(
bool shortNames);
58 virtual void setLog(DtOutputStream& log);
61 virtual DtOutputStream& log();
64 virtual void createAttributeColumn(
const DtDatatypeFedNode* attrDatatypeNode,
70 std::vector<DtDatabaseTableSP>& tables ) = 0;
74 const DtDatabaseTable& primaryTable,
const DtString& variantName,
const DtString& alternativeName,
75 std::vector<DtDatabaseTableSP>& tables) = 0;
78 virtual void setGenerateLargeSubcomponentTables(
bool generate);
80 virtual bool generateLargeSubcomponentTables()
const;
85 virtual int largeSubcomponentThreshold()
const;
89 virtual void setLargeSubcomponentThreshold(
int threshold);
93 typedef std::set<DtString> ShortNameSet;
96 virtual void makeTableName( DtString& stringToSet,
97 const MAKLogger::DtBaseHlaValue& hlaClass,
98 const char* baseNameToRemove);
101 virtual void createColumns(
const DtString& currentType,
DtDatabaseTableSP primaryTable,
102 const DtString& currentName,
const DtString& cardinality,
bool isVariantTable =
false);
105 virtual void addSimpleTypeColumn(
const DtDatatypeRep* typeRep,
107 const DtString& currentName )
const;
110 virtual void createArrayTable(
const DtDatatypeFedNode* attrDatatypeNode,
114 virtual void createArrayColumns(
const DtString& arrayDataType,
118 virtual void createVariantTables(
const DtDatatypeFedNode* attrDatatypeNode,
123 virtual void updateTableValues(
const DtStringTree* node,
125 const DtString& parentName,
bool skipNode);
128 virtual void setColumnValue(
const DtString& columnDataType,
133 const DtStringTree* node,
const DtString& columnName);
137 virtual DtString getSubTableName(
const DtString& primaryTableName,
138 const DtString& attributeName,
const DtString& rootName );
142 virtual DtString getVariantSubTableName(
const DtString& primaryTableName,
143 const DtString& attributeName,
const DtString& alternativeName,
const DtString& rootName);
146 virtual void updateTablesWithAttribute(std::vector<DtDatabaseTableSP>& tables,
148 const DtConstLgrHlaMessage& hlaMessage,
const DtLgrVariableLengthData& attributeValue,
149 const DtDatatypeFedNode* attributeNode);
152 virtual void updateSubTableDefaultColumns(
const DtDatabaseTable& primaryTable,
153 DtDatabaseTable& currentTable,
const MAKLogger::DtConstLgrHlaMessage& hlaMessage);
157 const std::vector<DtDatabaseTableSP>& tables,
const DtString& tableName);
161 virtual int numberOfSubcomponents(
const DtString& dataTypeName);
166 virtual bool isVariantConsistent(DtVariantDatatypeNode* variantNode,
172 static void appendName( DtString &name,
const DtString& suffix );
176 DtOMTTree* myOMTTree;
177 DtDatatypeManager* myDatatypeManager;
178 bool myUseShortNames;
179 ShortNameSet myShortNames;
181 DtOutputStream myDefaultLog;
182 DtOutputStream* myLog;
185 typedef std::set<DtString> ColumnLog;
186 ColumnLog myErrorColumnLog;
187 bool myGenerateLargeSubcomponentTables;
188 int myLargeSubcomponentThreshold;
195 unsigned int myMaxColumnNameLength;
DataType
Definition: databaseColumn.h:32
Definition: databaseColumn.h:26
#define DT_DLL_SQLEXPORTER
Definition: lgrSqlExporter.h:19
A table is simply a table name and a list of column entries (DtDatabaseColumn).
Definition: databaseTable.h:23
std::shared_ptr< DtDatabaseTable > DtDatabaseTableSP
Definition: databaseTable.h:112
Contains DtDatabaseTable.