11 #ifndef lgrHlaTableFactory_H_
12 #define lgrHlaTableFactory_H_
19 #include <vlutil/vlPrint.h>
35 class DtLgrVariableLengthData;
36 class DtConstLgrHlaMessage;
43 DtLgrHlaTableFactory(
const DtLgrHlaTableFactory&);
44 DtLgrHlaTableFactory& operator=(
const DtLgrHlaTableFactory&);
52 virtual ~DtLgrHlaTableFactory();
55 virtual void setUseShortTableNames(
bool shortNames);
58 virtual void setLog(DtOutputStream& log);
61 virtual DtOutputStream& log();
70 std::vector<DtDatabaseTableSP>& tables ) = 0;
74 virtual void setGenerateLargeSubcomponentTables(
bool generate);
75 virtual bool generateLargeSubcomponentTables()
const;
83 virtual int largeSubcomponentThreshold()
const;
84 virtual void setLargeSubcomponentThreshold(
int threshold);
88 typedef std::set<DtString> ShortNameSet;
91 virtual void makeTableName( DtString& stringToSet,
92 const MAKLogger::DtBaseHlaValue& hlaClass,
93 const char* baseNameToRemove);
96 virtual void createColumns(
const DtString& currentType,
DtDatabaseTableSP primaryTable,
97 const DtString& currentName,
const DtString& cardinality );
100 virtual void addSimpleTypeColumn(
const DtDatatypeRep* typeRep,
102 const DtString& currentName )
const;
109 virtual void createArrayColumns(
const DtString& arrayDataType,
118 virtual void updateTableValues(
const DtStringTree* node,
120 const DtString& parentName,
bool skipNode);
123 virtual void setColumnValue(
const DtString& columnDataType,
132 virtual DtString getSubTableName(
const DtString& primaryTableName,
133 const DtString& attributeName,
const DtString& rootName );
136 virtual void updateTablesWithAttribute(std::vector<DtDatabaseTableSP>& tables,
138 const DtConstLgrHlaMessage& hlaMessage,
const DtLgrVariableLengthData& attributeValue,
142 virtual void updateSubTableDefaultColumns(
const DtDatabaseTable& primaryTable,
143 DtDatabaseTable& currentTable,
const MAKLogger::DtConstLgrHlaMessage& hlaMessage);
147 const std::vector<DtDatabaseTableSP>& tables,
const DtString& tableName);
151 virtual int numberOfSubcomponents(
const DtString& dataTypeName);
162 static void appendName( DtString &name,
const DtString& suffix );
168 bool myUseShortNames;
169 ShortNameSet myShortNames;
171 DtOutputStream myDefaultLog;
172 DtOutputStream* myLog;
175 typedef std::set<DtString> ColumnLog;
176 ColumnLog myErrorColumnLog;
177 bool myGenerateLargeSubcomponentTables;
178 int myLargeSubcomponentThreshold;