Commit 1280df8b authored by Erika Segatto's avatar Erika Segatto

Inclui tag DBIDOType no modelo e altera código para ler o tipo do oid dessa tag

parent 40559b6f
......@@ -1619,7 +1619,7 @@ var index, index2, lFixSize, lVarSize: integer;
lbMandatory: boolean;
lClassChild: IUMLClass;
lUMLAttribute: IUMLAttribute;
lsNomeClasse, lsAtributo, lsAtributoType, lsIDO, lsClassCode, lsTabela, lsTypeColumnName, lsColumnName, lsResult, lsColumnDBType: String;
lsNomeClasse, lsAtributo, lsAtributoType, lsIDO, lsIDOType, lsClassCode, lsTabela, lsTypeColumnName, lsColumnName, lsResult, lsColumnDBType: String;
lDBIntIdoMapTicket: acDBIdoMapTicket;
lClassMapTicket: acClassTicket;
lClassToDBMapTicket: acClassToDBMapTicket;
......@@ -1633,6 +1633,7 @@ var index, index2, lFixSize, lVarSize: integer;
lDbAttributeError: string;
lClassDisplayName, lAttributeDisplayName: string;
lClassErrors: TStringList;
lIDOTypeClass: string;
begin
if (poClasseRaiz.GetSpecializationCount > 0) then
......@@ -1653,6 +1654,7 @@ begin
lClassDisplayName := lClassChild.GetTaggedValueAsString('UserDisplayNames', 'ClassDisplayNames', 'DN');
lsIDO := lClassChild.GetTaggedValueAsString('DBMappings', 'DBClassMap', 'DBIDO');
lsIDOType := UpperCase(lClassChild.GetTaggedValueAsString('DBMappings', 'DBClassMap', 'DBIDOType'));
lsTabela := lClassChild.GetTaggedValueAsString('DBMappings', 'DBClassMap', 'Table');
lsClassCode := lClassChild.GetTaggedValueAsString('DBMappings', 'DBClassMap', 'Cod');
lsTypeColumnName := lClassChild.GetTaggedValueAsString('DBMappings', 'DBClassMap', 'Type');
......@@ -1702,14 +1704,26 @@ begin
raise Exception.Create(Format('Need to define tagged value "Cod" for class "%s" in DBClassMap Tag Definition Set (DBMappings Profiler).',[lClassChild.Pathname]));
end;
lClassMapTicket := poMetaModel.NewClassRegisterTicket(lsClassCode, lsNomeClasse, poClasseRaiz.Name, 0);
if (lsIDOType = 'VARCHAR') or (lsIDOType = 'NVARCHAR') or (lsIDOType = 'CHAR') then
begin
lIDOTypeClass := 'acOIDString';
lDBIntIdoMapTicket := acDBStringIdoMapTicket.Create(lsIDO);
end
else if (lsIDOType = 'INT') or (lsIDOType = 'INTEGER') then
begin
lIDOTypeClass := 'acOIDInt';
lDBIntIdoMapTicket := acDBIntIdoMapTicket.Create(lsIDO);
end
else
raise Exception.Create(Format('Invalid DBIDOType for class "%s" in DBClassMap Tag Definition Set (DBMappings Profiler).',[lClassChild.Pathname])); ;
lClassMapTicket := poMetaModel.NewClassRegisterTicket(lsClassCode, lsNomeClasse, lIDOTypeClass, poClasseRaiz.Name, 0);
lClassMapTicket.AuditDescription := lAuditDescription;
lClassMapTicket.DisplayName := lClassDisplayName;
lClassMapTicket.DBIndexes := lIndexes;
lMetaModelPersistenceMap := fMetaModelPersistenceMap;
lDBIntIdoMapTicket := acDBIntIdoMapTicket.Create(lsIDO);
lClassToDBMapTicket := (lMetaModelPersistenceMap as acMetaModelPersistenceMapSql).NewClassToDBMapRegisterTicket(lsClassCode, lClassMapTicket, lDBIntIdoMapTicket);
lClassToDBMapTicket.TableName := lsTabela;
......
......@@ -48,6 +48,11 @@
<TAGDEFINITION lock="False">
<NAME>DBIDO</NAME>
<TAGTYPE>String</TAGTYPE>
</TAGDEFINITION>
<TAGDEFINITION lock="False">
<NAME>DBIDOType</NAME>
<TAGTYPE>String</TAGTYPE>
<DEFAULTDATAVALUE>Int</DEFAULTDATAVALUE>
</TAGDEFINITION>
<TAGDEFINITION lock="False">
<NAME>Cod</NAME>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment