Commit 1c46e551 authored by Sandro Camata Santana's avatar Sandro Camata Santana

Ajustes

parent 7b8e54f3
...@@ -10,28 +10,32 @@ ...@@ -10,28 +10,32 @@
</HEADER> </HEADER>
<BODY> <BODY>
<MAINMENU> <MAINMENU>
<MAINITEM index="7" base="NEW_TOP" caption="Curio" beginGroup="TRUE"> <MAINITEM index="6" base="NEW_TOP" caption="Curio" beginGroup="TRUE">
<MAINITEM caption="Generate RegisterModelMappings" actionId="1" /> <MAINITEM caption="Generate RegisterModelMappings" actionId="1" />
<MAINITEM caption="Code Generator" actionId="6" beginGroup="TRUE"/> <MAINITEM caption="Code Generator" actionId="6" beginGroup="TRUE"/>
<MAINITEM caption="Quick OQL" actionId="18" beginGroup="TRUE"/> <MAINITEM caption="Quick OQL" actionId="18" beginGroup="TRUE"/>
<MAINITEM caption="OQL Studio" actionId="19" /> <MAINITEM caption="OQL Studio" actionId="19" />
<MAINITEM caption="Element documentation" actionId="12" beginGroup="TRUE"/> <!-- <MAINITEM caption="Element documentation" actionId="12" beginGroup="TRUE"/>
<MAINITEM caption="Convert ALL XSDs to Usecase XSD" actionId="14" beginGroup="TRUE"/> <MAINITEM caption="Convert ALL XSDs to Usecase XSD" actionId="14" beginGroup="TRUE"/>
<MAINITEM caption="Dynamo" actionId="20" beginGroup="TRUE"/> <MAINITEM caption="Dynamo" beginGroup="TRUE">
<MAINITEM caption="Manage Forms..." actionId="20"/>
</MAINITEM> -->
</MAINITEM> </MAINITEM>
<MAINITEM caption="Curio" beginGroup="TRUE" availableWhen="MODEL_SELECTED"> <MAINITEM caption="Curio" beginGroup="TRUE" availableWhen="MODEL_SELECTED">
<MAINITEM caption="Associations" beginGroup="TRUE"> <MAINITEM caption="Associations" beginGroup="TRUE">
<MAINITEM caption="Association code preview..." actionId="2" /> <MAINITEM caption="Association code preview..." actionId="2" />
</MAINITEM> </MAINITEM>
<MAINITEM caption="Classes" beginGroup="TRUE"> <MAINITEM caption="Classes" beginGroup="TRUE">
<MAINITEM caption="Insert class..." actionId="9" /> <MAINITEM caption="Insert class..." actionId="9" />
<MAINITEM caption="Edit selected class..." actionId="10"/> <MAINITEM caption="Edit selected class..." actionId="10"/>
<MAINITEM caption="Class code preview..." actionId="2" beginGroup="TRUE" /> <MAINITEM caption="Class code preview..." actionId="2" beginGroup="TRUE" />
</MAINITEM> </MAINITEM>
<!-- <MAINITEM caption="Transitions" > <!-- <MAINITEM caption="Transitions" >
<MAINITEM caption="XSD Editor..." actionId="7" /> <MAINITEM caption="XSD Editor..." actionId="7" />
</MAINITEM>--> </MAINITEM> -->
<MAINITEM caption="Usecases" beginGroup="TRUE"> <MAINITEM caption="Usecases" beginGroup="TRUE">
<MAINITEM caption="Insert usecase..." actionId="8" /> <MAINITEM caption="Insert usecase..." actionId="8" />
...@@ -53,6 +57,7 @@ ...@@ -53,6 +57,7 @@
<POPUPITEM caption="Associations" > <POPUPITEM caption="Associations" >
<POPUPITEM caption="Association code preview..." actionId="2" /> <POPUPITEM caption="Association code preview..." actionId="2" />
</POPUPITEM> </POPUPITEM>
<POPUPITEM caption="Classes" > <POPUPITEM caption="Classes" >
<POPUPITEM caption="Class code preview..." actionId="2" /> <POPUPITEM caption="Class code preview..." actionId="2" />
<POPUPITEM caption="Insert class..." actionId="9" beginGroup="TRUE" /> <POPUPITEM caption="Insert class..." actionId="9" beginGroup="TRUE" />
...@@ -61,13 +66,17 @@ ...@@ -61,13 +66,17 @@
<!-- <POPUPITEM caption="Transitions" > <!-- <POPUPITEM caption="Transitions" >
<POPUPITEM caption="XSD Editor..." actionId="7" /> <POPUPITEM caption="XSD Editor..." actionId="7" />
</POPUPITEM>--> </POPUPITEM> -->
<POPUPITEM caption="Usecases" > <POPUPITEM caption="Usecases" >
<POPUPITEM caption="Insert usecase..." actionId="8" /> <POPUPITEM caption="Insert usecase..." actionId="8" />
<POPUPITEM caption="Edit selected usecase..." actionId="11"/> <POPUPITEM caption="Edit selected usecase..." actionId="11"/>
<POPUPITEM caption="XSDs Editor..." actionId="13" beginGroup="TRUE" /> <POPUPITEM caption="XSDs Editor..." actionId="13" beginGroup="TRUE" />
</POPUPITEM> </POPUPITEM>
<POPUPITEM caption="Dynamo" >
<POPUPITEM caption="Manage Forms" actionId="20" />
</POPUPITEM>
</POPUPMENU> </POPUPMENU>
</BODY> </BODY>
</ADDINMENU> </ADDINMENU>
......
...@@ -29,10 +29,12 @@ uses ...@@ -29,10 +29,12 @@ uses
utuLinksManager, utuLinksManager,
utuLinkSock, utuLinkSock,
acuFramework, acuFramework,
acuSystem, acuSystemCurrentConfig,
acuApplicationLog, acuApplicationLog,
acuPersistenceLog,
acuQuerySQLODBC, acuQuerySQLODBC,
ituExplorerV2, ituExplorerV2,
acuAudit,
IntegracaoDelphiSUML in 'IntegracaoDelphiSUML.pas', IntegracaoDelphiSUML in 'IntegracaoDelphiSUML.pas',
Mostra_Processamento in 'Mostra_Processamento.pas' {FMostra_Processamento}, Mostra_Processamento in 'Mostra_Processamento.pas' {FMostra_Processamento},
InstantClasses in 'InstantCode\InstantClasses.pas', InstantClasses in 'InstantCode\InstantClasses.pas',
...@@ -60,20 +62,21 @@ begin ...@@ -60,20 +62,21 @@ begin
end; end;
{$ifend} {$ifend}
gSystemConfig := acSystem.Create(''); if not assigned(acApplicationLog.Instance) then acApplicationLog.Instance := acApplicationLog.Create;
if not assigned(gApplicationLog) then gApplicationLog := acApplicationLog.Create; if not assigned(acPersistenceManager.Instance) then acPersistenceManager.Instance := acPersistenceManager.Create;
if not assigned(gPersistenceManager) then gPersistenceManager := acPersistenceManager.Create; if not assigned(acPersistenceManager.Audit) then acPersistenceManager.Audit := acAudit.Create;
if not assigned(gAuditLog) then gAuditLog := acAuditLog.Create; if not Assigned(acPersistenceLog.Instance) then acPersistenceLog.Instance := acPersistenceLog.Create;
utuMessage.ChangeLocaleFormatSetting; if not Assigned(acSystemCurrentConfig.Instance) then acSystemCurrentConfig.Instance := acSystemCurrentConfig.Create;
gDefaultDatabaseDriver := typeOf(acDatabaseSQLODBC); mxMessage.ChangeLocaleFormatSetting;
acRepositorySQL.DefaultDatabaseDriver := typeOf(acDatabaseSQLODBC);
PersistenceManager.DefaultRepositoryClass := typeOf(acRepositorySQL); PersistenceManager.DefaultRepositoryClass := typeOf(acRepositorySQL);
PersistenceManager.RegisterClass(typeOf(acPersistentObject), acPersistentObjectClassFactory.Create); PersistenceManager.RegisterClass(typeOf(acPersistentObject), acPersistentObjectClassFactory.Create);
gSQLDialectManager := acSQLDialectManager.Create; if not Assigned(acSQLDialectManager.Instance) then acSQLDialectManager.Instance := acSQLDialectManager.Create;
gSQLDialectManager.RegisterSQLDialect('MS SQL Server', typeOf(acSQLDialectSQLServer), acSQLDialectSQLServerClassFactory.Create); acSQLDialectManager.Instance.RegisterSQLDialect('MS SQL Server', typeOf(acSQLDialectSQLServer), acSQLDialectSQLServerClassFactory.Create);
gSQLDialectManager.RegisterSQLDialect('Oracle', typeOf(acSQLDialectOracle), acSQLDialectOracleClassFactory.Create); acSQLDialectManager.Instance.RegisterSQLDialect('Oracle', typeOf(acSQLDialectOracle), acSQLDialectOracleClassFactory.Create);
gSQLDialectManager.RegisterSQLDialect('DB2', typeOf(acSQLDialectDB2), acSQLDialectDB2ClassFactory.Create); acSQLDialectManager.Instance.RegisterSQLDialect('DB2', typeOf(acSQLDialectDB2), acSQLDialectDB2ClassFactory.Create);
gLinksManager := utLinksManager.Create; if not Assigned(utLinksManager.Instance) then utLinksManager.Instance := utLinksManager.Create;
gLinksManager.RegisterLink('tcp/ip', typeOf(utLinkSock), utLinkSockClassFactory.Create); utLinksManager.Instance.RegisterLink('tcp/ip', typeOf(utLinkSock), utLinkSockClassFactory.Create);
{$IFDEF DARWIN} {$IFDEF DARWIN}
MainPool := Nil; MainPool := Nil;
......
...@@ -98,9 +98,6 @@ ...@@ -98,9 +98,6 @@
<TargetOS Value="win32"/> <TargetOS Value="win32"/>
</CodeGeneration> </CodeGeneration>
<Linking> <Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
<Options> <Options>
<Win32> <Win32>
<GraphicApplication Value="True"/> <GraphicApplication Value="True"/>
...@@ -171,23 +168,30 @@ ...@@ -171,23 +168,30 @@
</PublishOptions> </PublishOptions>
<RunParams> <RunParams>
<FormatVersion Value="2"/> <FormatVersion Value="2"/>
<Modes Count="0"/>
</RunParams> </RunParams>
<RequiredPackages Count="5"> <RequiredPackages Count="7">
<Item1> <Item1>
<PackageName Value="JvStdCtrlsLazR"/> <PackageName Value="CurioApplication"/>
</Item1> </Item1>
<Item2> <Item2>
<PackageName Value="evoumlintf"/> <PackageName Value="Curio"/>
</Item2> </Item2>
<Item3> <Item3>
<PackageName Value="curio"/> <PackageName Value="CurioPersistence"/>
</Item3> </Item3>
<Item4> <Item4>
<PackageName Value="SynEdit"/> <PackageName Value="CurioModeling"/>
</Item4> </Item4>
<Item5> <Item5>
<PackageName Value="LCL"/> <PackageName Value="evoumlintf"/>
</Item5> </Item5>
<Item6>
<PackageName Value="SynEdit"/>
</Item6>
<Item7>
<PackageName Value="LCL"/>
</Item7>
</RequiredPackages> </RequiredPackages>
<Units Count="32"> <Units Count="32">
<Unit0> <Unit0>
......
...@@ -65,6 +65,8 @@ type ...@@ -65,6 +65,8 @@ type
CheckDBTableNameLength: boolean; CheckDBTableNameLength: boolean;
end; end;
{ TUtil }
TUtil = class(TObject) TUtil = class(TObject)
private private
{ Private declarations } { Private declarations }
...@@ -98,13 +100,15 @@ type ...@@ -98,13 +100,15 @@ type
procedure GerarUnitRegisterModelMappings(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress); procedure GerarUnitRegisterModelMappings(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress);
procedure GerarUnitRegisterModelMappings_CSharp(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress); procedure GerarUnitRegisterModelMappings_CSharp(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress);
procedure GerarUnitRegisterModelMappings_Java(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress); procedure GerarUnitRegisterModelMappings_Java(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress);
function GerarBodyRegisterMappings(piModelMappingsOptions: TModelMappingsOptions; const piInstantCodeConsts: TInstantCodeConsts; piProgress: TFShowProgress; piStartAt: Integer; piEndAt: Integer): string; function GerarBodyRegisterMappings(piModelMappingsOptions: TModelMappingsOptions; const piInstantCodeConsts: TInstantCodeConsts; piProgress: TFShowProgress; piStartAt: Integer; piEndAt: Integer): string;
procedure GerarBodyRegisterMappings_CSharp(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress; piStartAt: Integer; piEndAt: Integer; piUnitRegisterMappings: PStringWriter); procedure GerarBodyRegisterMappings_CSharp(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress; piStartAt: Integer; piEndAt: Integer; piUnitRegisterMappings: PStringWriter);
procedure GerarBodyRegisterMappings_Java(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress; piStartAt: Integer; piEndAt: Integer; piUnitRegisterMappings: PStringWriter); procedure GerarBodyRegisterMappings_Java(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress; piStartAt: Integer; piEndAt: Integer; piUnitRegisterMappings: PStringWriter);
function GerarBodyRelationsAll(piProgress: TFShowProgress): string;
procedure GerarBodyRelationsAll_CSharp(piProgress: TFShowProgress; piUnitRegisterMappings: PStringWriter); function GerarBodyRelationsAll(piProgress: TFShowProgress; piStartAt: Integer; piEndAt: Integer): string;
procedure GerarBodyRelationsAll_Java(piProgress: TFShowProgress; piUnitRegisterMappings: PStringWriter); procedure GerarBodyRelationsAll_CSharp(piProgress: TFShowProgress; piStartAt: Integer; piEndAt: Integer; piUnitRegisterMappings: PStringWriter);
procedure GerarUnitRelationsAll(piModelMappingsOptions: TModelMappingsOptions; psFileName: string; piProgress: TFShowProgress); procedure GerarBodyRelationsAll_Java(piProgress: TFShowProgress; piStartAt: Integer; piEndAt: Integer; piUnitRegisterMappings: PStringWriter);
function GerarRelationsPartnerShips(piClassTicket: acClassTicket; piInstantCodeClass: TInstantCodeClass): string; function GerarRelationsPartnerShips(piClassTicket: acClassTicket; piInstantCodeClass: TInstantCodeClass): string;
function GerarBodyUseCases(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress; piStartAt: Integer; piEndAt: Integer; piInstantCodeImplementationSection: TInstantCodeImplementationSection): string; function GerarBodyUseCases(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress; piStartAt: Integer; piEndAt: Integer; piInstantCodeImplementationSection: TInstantCodeImplementationSection): string;
...@@ -174,8 +178,8 @@ var gStarUMLApp: IStarUMLApplication; ...@@ -174,8 +178,8 @@ var gStarUMLApp: IStarUMLApplication;
implementation implementation
uses dialogs, uDBAttributeParameters, acuUseCaseStateMachine, acuFramework, Forms, DelphiAddInObj, uses dialogs, uDBAttributeParameters, acuFramework, Forms, DelphiAddInObj,
Controls, strutils, utuMessage, utuXSD, acuModelMapping; Controls, strutils, utuMessage, utuXSD, acuModelMapping, acuUseCaseStateMachine;
function InitializeAddIn(AApplicationHandle: THandle; AStarUMLApplication: TObject): Integer; {$IFDEF MSWINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} function InitializeAddIn(AApplicationHandle: THandle; AStarUMLApplication: TObject): Integer; {$IFDEF MSWINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
begin begin
...@@ -422,7 +426,7 @@ function TUtil.SQLScriptCreateDirectTable(piClassToDBMapTicket: acClassToDBMapTi ...@@ -422,7 +426,7 @@ function TUtil.SQLScriptCreateDirectTable(piClassToDBMapTicket: acClassToDBMapTi
for i := piClassDBTicket.ClassTicket.RelationTicketsIn.Count - 1 downto 0 do for i := piClassDBTicket.ClassTicket.RelationTicketsIn.Count - 1 downto 0 do
begin begin
lRelationTicket := acRelationTicket(piClassDBTicket.ClassTicket.RelationTicketsIn.Objects[i]); lRelationTicket := acRelationTicket(piClassDBTicket.ClassTicket.RelationTicketsIn.Objects[i]);
lRelationPersistenceMapTicket := lMetaModelPersistenceMapSQL.RelationsSQLPersistenceMapTicket[lRelationTicket]; lRelationPersistenceMapTicket := lMetaModelPersistenceMapSQL.GetRelationsSQLPersistenceMapTicket(lRelationTicket);
if (lRelationTicket.DestinationMaxMultiplicity <= 1) then if (lRelationTicket.DestinationMaxMultiplicity <= 1) then
if (lRelationPersistenceMapTicket is acDirectDBRelationMapTicket)then if (lRelationPersistenceMapTicket is acDirectDBRelationMapTicket)then
begin begin
...@@ -625,6 +629,31 @@ begin ...@@ -625,6 +629,31 @@ begin
piIndirectDBRelationMapTicket.FKDestinoName]),#13#10); piIndirectDBRelationMapTicket.FKDestinoName]),#13#10);
Result := concat(Result, 'exception when others then raise;', #13#10, 'end;'); Result := concat(Result, 'exception when others then raise;', #13#10, 'end;');
end; end;
if piIndirectDBRelationMapTicket.RelationTicket.OriginMaxMultiplicity <= 1 then
begin
Result := concat(Result, #13#10#13#10);
Result := concat(Result, 'begin execute immediate ', #13#10);
result := concat(result, Format('''CREATE UNIQUE INDEX %s ON %s (%s)'';',
['IU' + StringReplace(piIndirectDBRelationMapTicket.RelationTicket.OriginClassTicket.PersistentObjectClassCode, '-', 'S', [rfReplaceAll]) + piIndirectDBRelationMapTicket.FKOrigemName,
piIndirectDBRelationMapTicket.TableName,
piIndirectDBRelationMapTicket.FKOrigemName]),#13#10);
Result := concat(Result, 'exception when others then raise;', #13#10, 'end;');
end
else
begin
if piIndirectDBRelationMapTicket.RelationTicket.OriginPropertyName = '' then
begin
Result := concat(Result, #13#10#13#10);
Result := concat(Result, 'begin execute immediate ', #13#10);
result := concat(result, Format('''CREATE INDEX %s ON %s (%s)'';',
['IU' + StringReplace(piIndirectDBRelationMapTicket.RelationTicket.OriginClassTicket.PersistentObjectClassCode, '-', 'S', [rfReplaceAll]) + piIndirectDBRelationMapTicket.FKOrigemName,
piIndirectDBRelationMapTicket.TableName,
piIndirectDBRelationMapTicket.FKOrigemName]),#13#10);
Result := concat(Result, 'exception when others then raise;', #13#10, 'end;');
end
end;
if piIndirectDBRelationMapTicket.RelationTicket.DestinationPropertyName <> '' then if piIndirectDBRelationMapTicket.RelationTicket.DestinationPropertyName <> '' then
begin begin
Result := concat(Result, #13#10#13#10); Result := concat(Result, #13#10#13#10);
...@@ -636,10 +665,34 @@ begin ...@@ -636,10 +665,34 @@ begin
piIndirectDBRelationMapTicket.FKOrigemName]),#13#10); piIndirectDBRelationMapTicket.FKOrigemName]),#13#10);
Result := concat(Result, 'exception when others then raise;', #13#10, 'end;'); Result := concat(Result, 'exception when others then raise;', #13#10, 'end;');
end; end;
if piIndirectDBRelationMapTicket.RelationTicket.DestinationMaxMultiplicity <= 1 then
begin
Result := concat(Result, #13#10#13#10);
Result := concat(Result, 'begin execute immediate ', #13#10);
result := concat(result, Format('''CREATE UNIQUE INDEX %s ON %s (%s)'';',
['IU' + StringReplace(piIndirectDBRelationMapTicket.RelationTicket.DestinationClassTicket.PersistentObjectClassCode, '-', 'S', [rfReplaceAll]) + piIndirectDBRelationMapTicket.FKDestinoName,
piIndirectDBRelationMapTicket.TableName,
piIndirectDBRelationMapTicket.FKDestinoName]),#13#10);
Result := concat(Result, 'exception when others then raise;', #13#10, 'end;');
end
else
begin
if piIndirectDBRelationMapTicket.RelationTicket.DestinationPropertyName = '' then
begin
Result := concat(Result, #13#10#13#10);
Result := concat(Result, 'begin execute immediate ', #13#10);
result := concat(result, Format('''CREATE INDEX %s ON %s (%s)'';',
['IU' + StringReplace(piIndirectDBRelationMapTicket.RelationTicket.DestinationClassTicket.PersistentObjectClassCode, '-', 'S', [rfReplaceAll]) + piIndirectDBRelationMapTicket.FKDestinoName,
piIndirectDBRelationMapTicket.TableName,
piIndirectDBRelationMapTicket.FKDestinoName]),#13#10);
Result := concat(Result, 'exception when others then raise;', #13#10, 'end;');
end
end;
end; end;
else else
begin begin
result := concat(result, Format('ALTER TABLE %s ADD CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s(%s);', (* result := concat(result, Format('ALTER TABLE %s ADD CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s(%s);',
[piIndirectDBRelationMapTicket.TableName, [piIndirectDBRelationMapTicket.TableName,
lNomeConstraint, lNomeConstraint,
piIndirectDBRelationMapTicket.FKOrigemName, piIndirectDBRelationMapTicket.FKOrigemName,
...@@ -666,7 +719,28 @@ begin ...@@ -666,7 +719,28 @@ begin
piIndirectDBRelationMapTicket.FKOrigemName, piIndirectDBRelationMapTicket.FKOrigemName,
piIndirectDBRelationMapTicket.FKDestinoName])); piIndirectDBRelationMapTicket.FKDestinoName]));
end; end;
if piIndirectDBRelationMapTicket.RelationTicket.DestinationPropertyName <> '' then *)
if piIndirectDBRelationMapTicket.RelationTicket.OriginMaxMultiplicity <= 1 then
begin
Result := concat(Result, #13#10#13#10);
result := concat(result, Format('CREATE UNIQUE INDEX %s ON %s (%s);',
['IU' + StringReplace(piIndirectDBRelationMapTicket.RelationTicket.OriginClassTicket.PersistentObjectClassCode, '-', 'S', [rfReplaceAll]) + piIndirectDBRelationMapTicket.FKOrigemName,
piIndirectDBRelationMapTicket.TableName,
piIndirectDBRelationMapTicket.FKOrigemName]));
end
else
begin
if piIndirectDBRelationMapTicket.RelationTicket.OriginPropertyName = '' then
begin
Result := concat(Result, #13#10#13#10);
result := concat(result, Format('CREATE INDEX %s ON %s (%s);',
['IU' + StringReplace(piIndirectDBRelationMapTicket.RelationTicket.OriginClassTicket.PersistentObjectClassCode, '-', 'S', [rfReplaceAll]) + piIndirectDBRelationMapTicket.FKOrigemName,
piIndirectDBRelationMapTicket.TableName,
piIndirectDBRelationMapTicket.FKOrigemName]));
end;
end;
(* if piIndirectDBRelationMapTicket.RelationTicket.DestinationPropertyName <> '' then
begin begin
Result := concat(Result, #13#10#13#10); Result := concat(Result, #13#10#13#10);
result := concat(result, Format('CREATE UNIQUE INDEX %s ON %s (%s, %s);', result := concat(result, Format('CREATE UNIQUE INDEX %s ON %s (%s, %s);',
...@@ -675,6 +749,27 @@ begin ...@@ -675,6 +749,27 @@ begin
piIndirectDBRelationMapTicket.FKDestinoName, piIndirectDBRelationMapTicket.FKDestinoName,
piIndirectDBRelationMapTicket.FKOrigemName])); piIndirectDBRelationMapTicket.FKOrigemName]));
end; end;
*)
if piIndirectDBRelationMapTicket.RelationTicket.DestinationMaxMultiplicity <= 1 then
begin
Result := concat(Result, #13#10#13#10);
result := concat(result, Format('CREATE UNIQUE INDEX %s ON %s (%s);',
['IU' + StringReplace(piIndirectDBRelationMapTicket.RelationTicket.DestinationClassTicket.PersistentObjectClassCode, '-', 'S', [rfReplaceAll]) + piIndirectDBRelationMapTicket.FKDestinoName,
piIndirectDBRelationMapTicket.TableName,
piIndirectDBRelationMapTicket.FKDestinoName]));
end
else
begin
if piIndirectDBRelationMapTicket.RelationTicket.DestinationPropertyName = '' then
begin
Result := concat(Result, #13#10#13#10);
result := concat(result, Format('CREATE INDEX %s ON %s (%s);',
['IU' + StringReplace(piIndirectDBRelationMapTicket.RelationTicket.DestinationClassTicket.PersistentObjectClassCode, '-', 'S', [rfReplaceAll]) + piIndirectDBRelationMapTicket.FKDestinoName,
piIndirectDBRelationMapTicket.TableName,
piIndirectDBRelationMapTicket.FKDestinoName]));
end;
end;
end; end;
end; end;
end; end;
...@@ -741,7 +836,7 @@ begin ...@@ -741,7 +836,7 @@ begin
for i := piClassToDBMapTicket.ClassTicket.RelationTicketsIn.Count - 1 downto 0 do for i := piClassToDBMapTicket.ClassTicket.RelationTicketsIn.Count - 1 downto 0 do
begin begin
lRelationTicket := acRelationTicket(piClassToDBMapTicket.ClassTicket.RelationTicketsIn.Objects[i]); lRelationTicket := acRelationTicket(piClassToDBMapTicket.ClassTicket.RelationTicketsIn.Objects[i]);
lRelationPersistenceMapTicket := lMetaModelPersistenceMapSQL.RelationsSQLPersistenceMapTicket[lRelationTicket]; lRelationPersistenceMapTicket := lMetaModelPersistenceMapSQL.GetRelationsSQLPersistenceMapTicket(lRelationTicket);
if (lRelationTicket.DestinationMaxMultiplicity <= 1) then if (lRelationTicket.DestinationMaxMultiplicity <= 1) then
begin begin
if (lRelationPersistenceMapTicket is acDirectDBRelationMapTicket)then if (lRelationPersistenceMapTicket is acDirectDBRelationMapTicket)then
...@@ -970,7 +1065,7 @@ begin ...@@ -970,7 +1065,7 @@ begin
for i := piClassToDBMapTicket.ClassTicket.RelationTicketsIn.Count - 1 downto 0 do for i := piClassToDBMapTicket.ClassTicket.RelationTicketsIn.Count - 1 downto 0 do
begin begin
lRelationTicket := acRelationTicket(piClassToDBMapTicket.ClassTicket.RelationTicketsIn.Objects[i]); lRelationTicket := acRelationTicket(piClassToDBMapTicket.ClassTicket.RelationTicketsIn.Objects[i]);
lRelationPersistenceMapTicket := lMetaModelPersistenceMapSQL.RelationsSQLPersistenceMapTicket[lRelationTicket]; lRelationPersistenceMapTicket := lMetaModelPersistenceMapSQL.GetRelationsSQLPersistenceMapTicket(lRelationTicket);
if (lRelationTicket.DestinationMaxMultiplicity <= 1) then if (lRelationTicket.DestinationMaxMultiplicity <= 1) then
begin begin
if (lRelationPersistenceMapTicket is acDirectDBRelationMapTicket)then if (lRelationPersistenceMapTicket is acDirectDBRelationMapTicket)then
...@@ -1232,7 +1327,7 @@ procedure TUtil.AlimentaMetaModelStateMachine(piRootUseCase: IUMLUseCase; piStar ...@@ -1232,7 +1327,7 @@ procedure TUtil.AlimentaMetaModelStateMachine(piRootUseCase: IUMLUseCase; piStar
raise Exception.Create(Format('Need to define tagged value "Code" for UseCase "%s" in DBUseCaseMap Tag Definition.',[(lUCStateMachine.Context as IUMLUseCase).Pathname])); raise Exception.Create(Format('Need to define tagged value "Code" for UseCase "%s" in DBUseCaseMap Tag Definition.',[(lUCStateMachine.Context as IUMLUseCase).Pathname]));
end; end;
lUseCaseTicket := MetaModel.UseCaseTicketByCode[lUseCaseCode]; lUseCaseTicket := MetaModel.GetUseCaseTicketByCode(lUseCaseCode);
if not Assigned(lUseCaseTicket) then if not Assigned(lUseCaseTicket) then
begin begin
raise Exception.Create(Format('UseCaseTicket not found for UseCase "%s" in DBUseCaseMap Tag Definition.',[(lUCStateMachine.Context as IUMLUseCase).Pathname + ' ('+lUseCaseCode+')'])); raise Exception.Create(Format('UseCaseTicket not found for UseCase "%s" in DBUseCaseMap Tag Definition.',[(lUCStateMachine.Context as IUMLUseCase).Pathname + ' ('+lUseCaseCode+')']));
...@@ -2202,7 +2297,7 @@ begin ...@@ -2202,7 +2297,7 @@ begin
raise Exception.Create(Format('Need to define tagged value "Code" for UseCase "%s" in DBUseCaseMap Tag Definition.',[lUMLChildUseCase.Pathname])); raise Exception.Create(Format('Need to define tagged value "Code" for UseCase "%s" in DBUseCaseMap Tag Definition.',[lUMLChildUseCase.Pathname]));
end; end;
lUseCaseTicket := poMetaModel.UseCaseTicketByCode[lUseCaseCode]; lUseCaseTicket := poMetaModel.GetUseCaseTicketByCode(lUseCaseCode);
if Assigned(lUseCaseTicket) then if Assigned(lUseCaseTicket) then
begin begin
gStarUMLApp.SelectInModelExplorer(lUMLChildUseCase); gStarUMLApp.SelectInModelExplorer(lUMLChildUseCase);
...@@ -2285,7 +2380,7 @@ begin ...@@ -2285,7 +2380,7 @@ begin
raise Exception.Create(Format('Need to define tagged value "Code" for UseCase "%s" in DBUseCaseMap Tag Definition.',[lUMLChildUseCase.Pathname])); raise Exception.Create(Format('Need to define tagged value "Code" for UseCase "%s" in DBUseCaseMap Tag Definition.',[lUMLChildUseCase.Pathname]));
end; end;
lUseCaseTicket := poMetaModel.UseCaseTicketByCode[lUseCaseCode]; lUseCaseTicket := poMetaModel.GetUseCaseTicketByCode(lUseCaseCode);
// lUseCaseTicket := poMetaModel.NewUseCaseTicket(lUseCaseCode, nil, lUseCaseIsAuditable); // lUseCaseTicket := poMetaModel.NewUseCaseTicket(lUseCaseCode, nil, lUseCaseIsAuditable);
// lUseCaseTicket.Name := lUMLChildUseCase.Name; // lUseCaseTicket.Name := lUMLChildUseCase.Name;
// lUseCaseTicket.InheritsFrom := lUMLChildUseCase.GetGeneralizationAt(0).Parent.Name; // lUseCaseTicket.InheritsFrom := lUMLChildUseCase.GetGeneralizationAt(0).Parent.Name;
...@@ -2365,9 +2460,6 @@ begin ...@@ -2365,9 +2460,6 @@ begin
if lsTypeColumnName <> '' then if lsTypeColumnName <> '' then
sRegisterMapping := sRegisterMapping + 'lClassToDBMapTicket.TypeColumnName := '''+ lsTypeColumnName +''';' + #13#10; sRegisterMapping := sRegisterMapping + 'lClassToDBMapTicket.TypeColumnName := '''+ lsTypeColumnName +''';' + #13#10;
if lClassTicket.Attributes.Count > 0 then
sRegisterMapping := sRegisterMapping + '// registrando os atributos da classe' + #13#10;
//Percorre atributos da classe //Percorre atributos da classe
for index := 0 to lClassTicket.Attributes.Count - 1 do for index := 0 to lClassTicket.Attributes.Count - 1 do
begin begin
...@@ -2440,7 +2532,9 @@ begin ...@@ -2440,7 +2532,9 @@ begin
result := sRegisterMapping; result := sRegisterMapping;
end; end;
procedure TUtil.GerarBodyRegisterMappings_CSharp(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress; piStartAt, piEndAt: Integer; piUnitRegisterMappings: PStringWriter); procedure TUtil.GerarBodyRegisterMappings_CSharp(
piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress;
piStartAt: Integer; piEndAt: Integer; piUnitRegisterMappings: PStringWriter);
var var
lEnum: acEnumerator; lEnum: acEnumerator;
lClassTicket: acClassTicket; lClassTicket: acClassTicket;
...@@ -2497,9 +2591,6 @@ begin ...@@ -2497,9 +2591,6 @@ begin
if lsTypeColumnName <> '' then if lsTypeColumnName <> '' then
piUnitRegisterMappings.WriteLine('lClassToDBMapTicket.TypeColumnName = "'+ lsTypeColumnName +'";'); piUnitRegisterMappings.WriteLine('lClassToDBMapTicket.TypeColumnName = "'+ lsTypeColumnName +'";');
if lClassTicket.Attributes.Count > 0 then
piUnitRegisterMappings.WriteLine('// registrando os atributos da classe');
//Percorre atributos da classe //Percorre atributos da classe
for index := 0 to lClassTicket.Attributes.Count - 1 do for index := 0 to lClassTicket.Attributes.Count - 1 do
begin begin
...@@ -2551,8 +2642,9 @@ begin ...@@ -2551,8 +2642,9 @@ begin
piUnitRegisterMappings.Outdent(); piUnitRegisterMappings.Outdent();
end; end;
procedure TUtil.GerarBodyRegisterMappings_Java(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress; piStartAt, piEndAt: Integer; procedure TUtil.GerarBodyRegisterMappings_Java(
piUnitRegisterMappings: PStringWriter); piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress;
piStartAt: Integer; piEndAt: Integer; piUnitRegisterMappings: PStringWriter);
var var
lEnum: acEnumerator; lEnum: acEnumerator;
lClassTicket: acClassTicket; lClassTicket: acClassTicket;
...@@ -2610,9 +2702,6 @@ begin ...@@ -2610,9 +2702,6 @@ begin
if lsTypeColumnName <> '' then if lsTypeColumnName <> '' then
piUnitRegisterMappings.WriteLine('lClassToDBMapTicket.setTypeColumnName("'+ lsTypeColumnName +'");'); piUnitRegisterMappings.WriteLine('lClassToDBMapTicket.setTypeColumnName("'+ lsTypeColumnName +'");');
if lClassTicket.Attributes.Count > 0 then
piUnitRegisterMappings.WriteLine('// registrando os atributos da classe');
//Percorre atributos da classe //Percorre atributos da classe
for index := 0 to lClassTicket.Attributes.Count - 1 do for index := 0 to lClassTicket.Attributes.Count - 1 do
begin begin
...@@ -2668,6 +2757,7 @@ procedure TUtil.GerarUnitRegisterModelMappings(piModelMappingsOptions: TModelMap ...@@ -2668,6 +2757,7 @@ procedure TUtil.GerarUnitRegisterModelMappings(piModelMappingsOptions: TModelMap
const const
MAX_UC = 100; MAX_UC = 100;
MAX_CLASS = 200; MAX_CLASS = 200;
MAX_RELATIONS = 200;
var var
lInstantCodeModule: TInstantCodeModule; lInstantCodeModule: TInstantCodeModule;
lInstantCodeProc: TInstantCodeProc; lInstantCodeProc: TInstantCodeProc;
...@@ -2677,6 +2767,7 @@ var ...@@ -2677,6 +2767,7 @@ var
lI, lI,
lTotalGroups: Integer; lTotalGroups: Integer;
lRegisterUseCasesCall, lRegisterUseCasesCall,
lRegisterRelationsCall,
lRegisterClassCall: string; lRegisterClassCall: string;
lInstantCodeConsts: TInstantCodeConsts; lInstantCodeConsts: TInstantCodeConsts;
// lInstantCodeWriter: TInstantCodeWriter; // lInstantCodeWriter: TInstantCodeWriter;
...@@ -2724,9 +2815,14 @@ begin ...@@ -2724,9 +2815,14 @@ begin
end; end;
lTotalGroups := (MetaModel.RelationTickets.Count div MAX_RELATIONS);
if (MetaModel.RelationTickets.Count mod MAX_RELATIONS) <> 0 then Inc(lTotalGroups);
for lI := 0 to lTotalGroups - 1 do
begin
//PROCEDURE RegisterClassRelationTickets ////////////////////////////////////////// //PROCEDURE RegisterClassRelationTickets //////////////////////////////////////////
lInstantCodeProc := lInstantCodeModule.ImplementationSection.AddProc; lInstantCodeProc := lInstantCodeModule.ImplementationSection.AddProc;
lInstantCodeProc.Name := 'RegisterClassRelationTickets'; lInstantCodeProc.Name := 'RegisterClassRelationTickets' + IntToStr(lI + 1);
lInstantCodeProc.Parameters.AddParameter('piMetaModel', 'acMetaModel', []); lInstantCodeProc.Parameters.AddParameter('piMetaModel', 'acMetaModel', []);
lInstantCodeProc.Parameters.AddParameter('piMetaModelPersistenceMap', 'acMetaModelPersistenceMapSQL', []); lInstantCodeProc.Parameters.AddParameter('piMetaModelPersistenceMap', 'acMetaModelPersistenceMapSQL', []);
lInstantCodeBody := lInstantCodeProc.Body; lInstantCodeBody := lInstantCodeProc.Body;
...@@ -2734,7 +2830,11 @@ begin ...@@ -2734,7 +2830,11 @@ begin
lInstantCodeVar := lInstantCodeBody.Vars.Add; lInstantCodeVar := lInstantCodeBody.Vars.Add;
lInstantCodeVar.Name := 'lRelationTicket'; lInstantCodeVar.Name := 'lRelationTicket';
lInstantCodeVar.TypeName := 'acRelationTicket'; lInstantCodeVar.TypeName := 'acRelationTicket';
lInstantCodeBody.Text := GerarBodyRelationsAll(piProgress); lInstantCodeBody.Text := GerarBodyRelationsAll(piProgress, lI*(MAX_RELATIONS) + 1, (lI + 1)*MAX_RELATIONS);
if (lRegisterRelationsCall <> '') then lRegisterRelationsCall := concat(lRegisterRelationsCall, #13#10);
lRegisterRelationsCall := concat(lRegisterRelationsCall, 'RegisterClassRelationTickets', IntToStr(lI + 1), '(piMetaModelPersistenceMap.MetaModel, piMetaModelPersistenceMap)', '{', IntToStr(lI*(MAX_RELATIONS) + 1) , ' - ', IntToStr( (lI + 1)*MAX_RELATIONS ), '};' );
end;
lTotalGroups := (MetaModel.UseCaseTickets.Count div MAX_UC); lTotalGroups := (MetaModel.UseCaseTickets.Count div MAX_UC);
if (MetaModel.UseCaseTickets.Count mod MAX_UC) <> 0 then Inc(lTotalGroups); if (MetaModel.UseCaseTickets.Count mod MAX_UC) <> 0 then Inc(lTotalGroups);
...@@ -2786,7 +2886,7 @@ begin ...@@ -2786,7 +2886,7 @@ begin
lInstantCodeBody := lInstantCodeProc.Body; lInstantCodeBody := lInstantCodeProc.Body;
lInstantCodeBody.Text := concat(' ', lRegisterClassCall, #13#10, lInstantCodeBody.Text := concat(' ', lRegisterClassCall, #13#10,
' ', 'RegisterClassRelationTickets(piMetaModelPersistenceMap.MetaModel, piMetaModelPersistenceMap);',#13#10, ' ', lRegisterRelationsCall,#13#10,
' ', lRegisterUseCasesCall); ' ', lRegisterUseCasesCall);
// Gerao de arquivo // Gerao de arquivo
...@@ -2800,11 +2900,14 @@ procedure TUtil.GerarUnitRegisterModelMappings_CSharp(piModelMappingsOptions: TM ...@@ -2800,11 +2900,14 @@ procedure TUtil.GerarUnitRegisterModelMappings_CSharp(piModelMappingsOptions: TM
const const
MAX_UC = 100; MAX_UC = 100;
MAX_CLASS = 200; MAX_CLASS = 200;
MAX_RELATIONS = 200;
var var
lProcBody: String; lProcBody: String;
lI, lI,
lTotalGroups: Integer; lTotalGroups: Integer;
lRegisterUseCasesCall, lRegisterUseCasesCall,
lRegisterRelationsCall,
lRegisterClassCall: PStringWriter; lRegisterClassCall: PStringWriter;
lArquivoRegisterModelMappings: PStringWriter; lArquivoRegisterModelMappings: PStringWriter;
...@@ -2813,17 +2916,14 @@ begin ...@@ -2813,17 +2916,14 @@ begin
lArquivoRegisterModelMappings := PStringWriter.Create(); lArquivoRegisterModelMappings := PStringWriter.Create();
lRegisterUseCasesCall := PStringWriter.Create(); lRegisterUseCasesCall := PStringWriter.Create();
lRegisterClassCall := PStringWriter.Create(); lRegisterClassCall := PStringWriter.Create();
lRegisterRelationsCall := PStringWriter.Create();
try try
lArquivoRegisterModelMappings.WriteLine('using acuFramework;');
lArquivoRegisterModelMappings.WriteLine('using acuRepositorySQL;');
lArquivoRegisterModelMappings.WriteLine('using System;'); lArquivoRegisterModelMappings.WriteLine('using System;');
lArquivoRegisterModelMappings.WriteLine('using acuRepositorySQL;');
lArquivoRegisterModelMappings.WriteLine('using acuModel;'); lArquivoRegisterModelMappings.WriteLine('using acuModel;');
lArquivoRegisterModelMappings.WriteLine('using utuStateMachine;'); lArquivoRegisterModelMappings.WriteLine('using utuStateMachine;');
lArquivoRegisterModelMappings.WriteLine('using acuUseCaseStateMachine;'); lArquivoRegisterModelMappings.WriteLine('using acuUseCaseStateMachine;');
lArquivoRegisterModelMappings.WriteLine(); lArquivoRegisterModelMappings.WriteLine();
lArquivoRegisterModelMappings.WriteLine('namespace acuRegisterModelMappings {');
lArquivoRegisterModelMappings.WriteLine();
lArquivoRegisterModelMappings.Indent();
lArquivoRegisterModelMappings.WriteLine('public sealed class acuRegisterModelMappings {'); lArquivoRegisterModelMappings.WriteLine('public sealed class acuRegisterModelMappings {');
lArquivoRegisterModelMappings.WriteLine(); lArquivoRegisterModelMappings.WriteLine();
...@@ -2846,11 +2946,19 @@ begin ...@@ -2846,11 +2946,19 @@ begin
end; end;
//PROCEDURE RegisterClassRelationTickets ////////////////////////////////////////// //PROCEDURE RegisterClassRelationTickets //////////////////////////////////////////
lTotalGroups := (MetaModel.RelationTickets.Count div MAX_RELATIONS);
if (MetaModel.RelationTickets.Count mod MAX_RELATIONS) <> 0 then Inc(lTotalGroups);
lArquivoRegisterModelMappings.WriteLine(); lArquivoRegisterModelMappings.WriteLine();
lArquivoRegisterModelMappings.WriteLine('internal static void RegisterClassRelationTickets(acMetaModel piMetaModel, acMetaModelPersistenceMapSQL piMetaModelPersistenceMap) {'); for lI := 0 to lTotalGroups - 1 do
GerarBodyRelationsAll_CSharp(piProgress, lArquivoRegisterModelMappings); begin
lArquivoRegisterModelMappings.WriteLine();
lArquivoRegisterModelMappings.WriteLine('internal static void RegisterClassRelationTickets' + IntToStr(lI + 1) + '(acMetaModel piMetaModel, acMetaModelPersistenceMapSQL piMetaModelPersistenceMap) {');
GerarBodyRelationsAll_CSharp(piProgress, lI*(MAX_RELATIONS) + 1, (lI + 1)*MAX_RELATIONS, lArquivoRegisterModelMappings);
lArquivoRegisterModelMappings.WriteLine('}'); lArquivoRegisterModelMappings.WriteLine('}');
lRegisterRelationsCall.WriteLine('RegisterClassRelationTickets' + IntToStr(lI + 1) + '(piMetaModelPersistenceMap.MetaModel, piMetaModelPersistenceMap);' );
end;
lTotalGroups := (MetaModel.UseCaseTickets.Count div MAX_UC); lTotalGroups := (MetaModel.UseCaseTickets.Count div MAX_UC);
if (MetaModel.UseCaseTickets.Count mod MAX_UC) <> 0 then Inc(lTotalGroups); if (MetaModel.UseCaseTickets.Count mod MAX_UC) <> 0 then Inc(lTotalGroups);
for lI := 0 to lTotalGroups - 1 do for lI := 0 to lTotalGroups - 1 do
...@@ -2869,10 +2977,10 @@ begin ...@@ -2869,10 +2977,10 @@ begin
//PROCEDURE RegisterModelMappings ////////////////////////////////////////// //PROCEDURE RegisterModelMappings //////////////////////////////////////////
lArquivoRegisterModelMappings.WriteLine(); lArquivoRegisterModelMappings.WriteLine();
lArquivoRegisterModelMappings.WriteLine('internal static void RegisterModelMappings(acMetaModelPersistenceMapSQL piMetaModelPersistenceMap) {'); lArquivoRegisterModelMappings.WriteLine('public static void RegisterModelMappings(acMetaModelPersistenceMapSQL piMetaModelPersistenceMap) {');
lArquivoRegisterModelMappings.Indent(); lArquivoRegisterModelMappings.Indent();
lArquivoRegisterModelMappings.Append(lRegisterClassCall); lArquivoRegisterModelMappings.Append(lRegisterClassCall);
lArquivoRegisterModelMappings.WriteLine('RegisterClassRelationTickets(piMetaModelPersistenceMap.MetaModel, piMetaModelPersistenceMap);'); lArquivoRegisterModelMappings.Append(lRegisterRelationsCall);
lArquivoRegisterModelMappings.Append(lRegisterUseCasesCall); lArquivoRegisterModelMappings.Append(lRegisterUseCasesCall);
lArquivoRegisterModelMappings.Outdent(); lArquivoRegisterModelMappings.Outdent();
lArquivoRegisterModelMappings.WriteLine('}'); lArquivoRegisterModelMappings.WriteLine('}');
...@@ -2881,9 +2989,6 @@ begin ...@@ -2881,9 +2989,6 @@ begin
lArquivoRegisterModelMappings.Outdent(); lArquivoRegisterModelMappings.Outdent();
lArquivoRegisterModelMappings.WriteLine(); lArquivoRegisterModelMappings.WriteLine();
lArquivoRegisterModelMappings.WriteLine('}'); lArquivoRegisterModelMappings.WriteLine('}');
lArquivoRegisterModelMappings.Outdent();
lArquivoRegisterModelMappings.WriteLine();
lArquivoRegisterModelMappings.WriteLine('}');
// Gerao de arquivo // Gerao de arquivo
if assigned(piProgress) then piProgress.ChangeMessage('Saving file "'+ piModelMappingsOptions.FileName +'"...'); if assigned(piProgress) then piProgress.ChangeMessage('Saving file "'+ piModelMappingsOptions.FileName +'"...');
...@@ -2891,6 +2996,9 @@ begin ...@@ -2891,6 +2996,9 @@ begin
finally finally
lArquivoRegisterModelMappings.Free; lArquivoRegisterModelMappings.Free;
lRegisterUseCasesCall.Free;
lRegisterClassCall.Free;
lRegisterRelationsCall.Free;
end; end;
end; end;
...@@ -2898,11 +3006,13 @@ procedure TUtil.GerarUnitRegisterModelMappings_Java(piModelMappingsOptions: TMod ...@@ -2898,11 +3006,13 @@ procedure TUtil.GerarUnitRegisterModelMappings_Java(piModelMappingsOptions: TMod
const const
MAX_UC = 100; MAX_UC = 100;
MAX_CLASS = 200; MAX_CLASS = 200;
MAX_RELATIONS = 200;
var var
lProcBody: String; lProcBody: String;
lI, lI,
lTotalGroups: Integer; lTotalGroups: Integer;
lRegisterUseCasesCall, lRegisterUseCasesCall,
lRegisterRelationsCall,
lRegisterClassCall: PStringWriter; lRegisterClassCall: PStringWriter;
lArquivoRegisterModelMappings: PStringWriter; lArquivoRegisterModelMappings: PStringWriter;
...@@ -2911,11 +3021,12 @@ begin ...@@ -2911,11 +3021,12 @@ begin
lArquivoRegisterModelMappings := PStringWriter.Create(); lArquivoRegisterModelMappings := PStringWriter.Create();
lRegisterUseCasesCall := PStringWriter.Create(); lRegisterUseCasesCall := PStringWriter.Create();
lRegisterClassCall := PStringWriter.Create(); lRegisterClassCall := PStringWriter.Create();
lRegisterRelationsCall := PStringWriter.Create();
try try
lArquivoRegisterModelMappings.WriteLine('import acurepositorysql.*;'); lArquivoRegisterModelMappings.WriteLine('import acuRepositorySQL.*;');
lArquivoRegisterModelMappings.WriteLine('import acumodel.*;'); lArquivoRegisterModelMappings.WriteLine('import acuModel.*;');
lArquivoRegisterModelMappings.WriteLine('import utustatemachine.*;'); lArquivoRegisterModelMappings.WriteLine('import utuStateMachine.*;');
lArquivoRegisterModelMappings.WriteLine('import acuusecasestatemachine.*;'); lArquivoRegisterModelMappings.WriteLine('import acuUseCaseStateMachine.*;');
lArquivoRegisterModelMappings.WriteLine(); lArquivoRegisterModelMappings.WriteLine();
lArquivoRegisterModelMappings.Indent(); lArquivoRegisterModelMappings.Indent();
...@@ -2937,11 +3048,19 @@ begin ...@@ -2937,11 +3048,19 @@ begin
end; end;
//PROCEDURE RegisterClassRelationTickets ////////////////////////////////////////// //PROCEDURE RegisterClassRelationTickets //////////////////////////////////////////
lTotalGroups := (MetaModel.RelationTickets.Count div MAX_RELATIONS);
if (MetaModel.RelationTickets.Count mod MAX_RELATIONS) <> 0 then Inc(lTotalGroups);
lArquivoRegisterModelMappings.WriteLine();
for lI := 0 to lTotalGroups - 1 do
begin
lArquivoRegisterModelMappings.WriteLine(); lArquivoRegisterModelMappings.WriteLine();
lArquivoRegisterModelMappings.WriteLine('static void RegisterClassRelationTickets(acMetaModel piMetaModel, acMetaModelPersistenceMapSQL piMetaModelPersistenceMap) {'); lArquivoRegisterModelMappings.WriteLine('static void RegisterClassRelationTickets' + IntToStr(lI + 1) + '(acMetaModel piMetaModel, acMetaModelPersistenceMapSQL piMetaModelPersistenceMap) {');
GerarBodyRelationsAll_Java(piProgress, lArquivoRegisterModelMappings); GerarBodyRelationsAll_Java(piProgress, lI*(MAX_RELATIONS) + 1, (lI + 1)*MAX_RELATIONS, lArquivoRegisterModelMappings);
lArquivoRegisterModelMappings.WriteLine('}'); lArquivoRegisterModelMappings.WriteLine('}');
lRegisterRelationsCall.WriteLine('RegisterClassRelationTickets' + IntToStr(lI + 1) + '(piMetaModelPersistenceMap.getMetaModel(), piMetaModelPersistenceMap);' );
end;
lTotalGroups := (MetaModel.UseCaseTickets.Count div MAX_UC); lTotalGroups := (MetaModel.UseCaseTickets.Count div MAX_UC);
if (MetaModel.UseCaseTickets.Count mod MAX_UC) <> 0 then Inc(lTotalGroups); if (MetaModel.UseCaseTickets.Count mod MAX_UC) <> 0 then Inc(lTotalGroups);
for lI := 0 to lTotalGroups - 1 do for lI := 0 to lTotalGroups - 1 do
...@@ -2960,10 +3079,10 @@ begin ...@@ -2960,10 +3079,10 @@ begin
//PROCEDURE RegisterModelMappings ////////////////////////////////////////// //PROCEDURE RegisterModelMappings //////////////////////////////////////////
lArquivoRegisterModelMappings.WriteLine(); lArquivoRegisterModelMappings.WriteLine();
lArquivoRegisterModelMappings.WriteLine('static void RegisterModelMappings(acMetaModelPersistenceMapSQL piMetaModelPersistenceMap) {'); lArquivoRegisterModelMappings.WriteLine('public static void RegisterModelMappings(acMetaModelPersistenceMapSQL piMetaModelPersistenceMap) {');
lArquivoRegisterModelMappings.Indent(); lArquivoRegisterModelMappings.Indent();
lArquivoRegisterModelMappings.Append(lRegisterClassCall); lArquivoRegisterModelMappings.Append(lRegisterClassCall);
lArquivoRegisterModelMappings.WriteLine('RegisterClassRelationTickets(piMetaModelPersistenceMap.getMetaModel(), piMetaModelPersistenceMap);'); lArquivoRegisterModelMappings.Append(lRegisterRelationsCall);
lArquivoRegisterModelMappings.Append(lRegisterUseCasesCall); lArquivoRegisterModelMappings.Append(lRegisterUseCasesCall);
lArquivoRegisterModelMappings.Outdent(); lArquivoRegisterModelMappings.Outdent();
lArquivoRegisterModelMappings.WriteLine('}'); lArquivoRegisterModelMappings.WriteLine('}');
...@@ -2979,10 +3098,13 @@ begin ...@@ -2979,10 +3098,13 @@ begin
finally finally
lArquivoRegisterModelMappings.Free; lArquivoRegisterModelMappings.Free;
lRegisterUseCasesCall.Free;
lRegisterClassCall.Free;
lRegisterRelationsCall.Free;
end; end;
end; end;
function TUtil.GerarBodyRelationsAll(piProgress: TFShowProgress): string; function TUtil.GerarBodyRelationsAll(piProgress: TFShowProgress; piStartAt: Integer; piEndAt: Integer): string;
var lEnumRelation: acEnumerator; var lEnumRelation: acEnumerator;
lRelationTicket: acRelationTicket; lRelationTicket: acRelationTicket;
lClassTicketOrigem, lClassTicketDestino: acClassTicket; lClassTicketOrigem, lClassTicketDestino: acClassTicket;
...@@ -2991,11 +3113,15 @@ var lEnumRelation: acEnumerator; ...@@ -2991,11 +3113,15 @@ var lEnumRelation: acEnumerator;
lRelationSQLPersistenceMapTicket: acRelationSQLPersistenceMapTicket; lRelationSQLPersistenceMapTicket: acRelationSQLPersistenceMapTicket;
bIndireta: boolean; bIndireta: boolean;
lMultiplicityOrMax, lMultiplicityDsMax, lMultiplicityOrMin, lMultiplicityDsMin: integer; lMultiplicityOrMax, lMultiplicityDsMax, lMultiplicityOrMin, lMultiplicityDsMin: integer;
li: Integer;
begin begin
if assigned(piProgress) then piProgress.ChangeMessage('Generating model mappings relation tickets...', 0, MetaModel.RelationTickets.Count); li := 1;
if assigned(piProgress) then piProgress.ChangeMessage(Format('Generating model mappings relation tickets... (%d of %d relations)', [piStartAt + piEndAt - 1, MetaModel.RelationTickets.Count]));
lEnumRelation := MetaModel.RelationTickets.GetEnumerator; lEnumRelation := MetaModel.RelationTickets.GetEnumerator;
try try
while not lEnumRelation.EOL do while (not lEnumRelation.EOL) and (li <= piEndAt) do
begin
if (li >= piStartAt) then
begin begin
if assigned(piProgress) then piProgress.Inc; if assigned(piProgress) then piProgress.Inc;
lRelationTicket := acRelationTicket(lEnumRelation.Current); lRelationTicket := acRelationTicket(lEnumRelation.Current);
...@@ -3046,7 +3172,6 @@ begin ...@@ -3046,7 +3172,6 @@ begin
lsNomeTabelaAssociativa := ', ''' + (lRelationSQLPersistenceMapTicket as acIndirectDBRelationMapTicket).TableName + ''''; lsNomeTabelaAssociativa := ', ''' + (lRelationSQLPersistenceMapTicket as acIndirectDBRelationMapTicket).TableName + '''';
lsNomeFKA := ', ''' + (lRelationSQLPersistenceMapTicket as acIndirectDBRelationMapTicket).FKOrigemName + ''''; lsNomeFKA := ', ''' + (lRelationSQLPersistenceMapTicket as acIndirectDBRelationMapTicket).FKOrigemName + '''';
lsNomeFKB := ', ''' + (lRelationSQLPersistenceMapTicket as acIndirectDBRelationMapTicket).FKDestinoName + ''''; lsNomeFKB := ', ''' + (lRelationSQLPersistenceMapTicket as acIndirectDBRelationMapTicket).FKDestinoName + '''';
end end
else else
begin begin
...@@ -3090,7 +3215,7 @@ begin ...@@ -3090,7 +3215,7 @@ begin
lsNomeFKA := ''; lsNomeFKA := '';
lsNomeFKB := ''; lsNomeFKB := '';
lsNomeTabelaAssociativa := ''; lsNomeTabelaAssociativa := '';
end;
lEnumRelation.MoveNext; lEnumRelation.MoveNext;
end; end;
finally finally
...@@ -3100,7 +3225,7 @@ begin ...@@ -3100,7 +3225,7 @@ begin
end; end;
procedure TUtil.GerarBodyRelationsAll_CSharp(piProgress: TFShowProgress; piUnitRegisterMappings: PStringWriter); procedure TUtil.GerarBodyRelationsAll_CSharp(piProgress: TFShowProgress; piStartAt: Integer; piEndAt: Integer; piUnitRegisterMappings: PStringWriter);
var lEnumRelation: acEnumerator; var lEnumRelation: acEnumerator;
lRelationTicket: acRelationTicket; lRelationTicket: acRelationTicket;
lClassTicketOrigem, lClassTicketDestino: acClassTicket; lClassTicketOrigem, lClassTicketDestino: acClassTicket;
...@@ -3110,9 +3235,10 @@ var lEnumRelation: acEnumerator; ...@@ -3110,9 +3235,10 @@ var lEnumRelation: acEnumerator;
bIndireta: boolean; bIndireta: boolean;
lMultiplicityOrMax, lMultiplicityDsMax, lMultiplicityOrMin, lMultiplicityDsMin: integer; lMultiplicityOrMax, lMultiplicityDsMax, lMultiplicityOrMin, lMultiplicityDsMin: integer;
lOriginPropertyName, lDetinationPropertyName: string; lOriginPropertyName, lDetinationPropertyName: string;
// I, li: integer;
lNumPropertyName: integer; lNumPropertyName: integer;
begin begin
li := 1;
lNumPropertyName:= 0; lNumPropertyName:= 0;
if assigned(piProgress) then piProgress.ChangeMessage('Generating model mappings relation tickets...', 0, MetaModel.RelationTickets.Count); if assigned(piProgress) then piProgress.ChangeMessage('Generating model mappings relation tickets...', 0, MetaModel.RelationTickets.Count);
piUnitRegisterMappings.Indent(); piUnitRegisterMappings.Indent();
...@@ -3120,7 +3246,9 @@ begin ...@@ -3120,7 +3246,9 @@ begin
lEnumRelation := MetaModel.RelationTickets.GetEnumerator; lEnumRelation := MetaModel.RelationTickets.GetEnumerator;
try try
while not lEnumRelation.EOL do while not lEnumRelation.EOL and (li <= piEndAt) do
begin
if li >= piStartAt then
begin begin
if assigned(piProgress) then piProgress.Inc; if assigned(piProgress) then piProgress.Inc;
lRelationTicket := acRelationTicket(lEnumRelation.Current); lRelationTicket := acRelationTicket(lEnumRelation.Current);
...@@ -3150,22 +3278,22 @@ begin ...@@ -3150,22 +3278,22 @@ begin
lOriginPropertyName := 'piOriginPropertyName' + IntToStr(lNumPropertyName); lOriginPropertyName := 'piOriginPropertyName' + IntToStr(lNumPropertyName);
lDetinationPropertyName := 'piDestinationPropertyName' + IntToStr(lNumPropertyName); lDetinationPropertyName := 'piDestinationPropertyName' + IntToStr(lNumPropertyName);
// piUnitRegisterMappings.WriteLine('ShortString ' + lOriginPropertyName + ';'); // piUnitRegisterMappings.WriteLine('ShortString ' + lOriginPropertyName + ';');
// piUnitRegisterMappings.WriteLine('ShortString ' + lDetinationPropertyName + ';'); // piUnitRegisterMappings.WriteLine('ShortString ' + lDetinationPropertyName + ';');
// piUnitRegisterMappings.WriteLine(lOriginPropertyName + '.Data = new Byte[] {'); // piUnitRegisterMappings.WriteLine(lOriginPropertyName + '.Data = new Byte[] {');
// piUnitRegisterMappings.WriteLine(IntToStr(Length(lRelationTicket.OriginPropertyName))+ ', '); // piUnitRegisterMappings.WriteLine(IntToStr(Length(lRelationTicket.OriginPropertyName))+ ', ');
// for I := 1 to Length(lRelationTicket.OriginPropertyName) do // for I := 1 to Length(lRelationTicket.OriginPropertyName) do
// begin // begin
// piUnitRegisterMappings.WriteLine(IntToStr(Ord(lRelationTicket.OriginPropertyName[I]))+ ', '); // piUnitRegisterMappings.WriteLine(IntToStr(Ord(lRelationTicket.OriginPropertyName[I]))+ ', ');
// end; // end;
// piUnitRegisterMappings.WriteLine('};'); // piUnitRegisterMappings.WriteLine('};');
// piUnitRegisterMappings.WriteLine(lDetinationPropertyName + '.Data = new Byte[] {'); // piUnitRegisterMappings.WriteLine(lDetinationPropertyName + '.Data = new Byte[] {');
// piUnitRegisterMappings.WriteLine(IntToStr(Length(lRelationTicket.DestinationPropertyName))+ ', '); // piUnitRegisterMappings.WriteLine(IntToStr(Length(lRelationTicket.DestinationPropertyName))+ ', ');
// for I := 1 to Length(lRelationTicket.DestinationPropertyName) do // for I := 1 to Length(lRelationTicket.DestinationPropertyName) do
// begin // begin
// piUnitRegisterMappings.WriteLine(IntToStr(Ord(lRelationTicket.DestinationPropertyName[I]))+ ', '); // piUnitRegisterMappings.WriteLine(IntToStr(Ord(lRelationTicket.DestinationPropertyName[I]))+ ', ');
// end; // end;
// piUnitRegisterMappings.WriteLine('};'); // piUnitRegisterMappings.WriteLine('};');
piUnitRegisterMappings.WriteLine('String ' + lOriginPropertyName + ';'); piUnitRegisterMappings.WriteLine('String ' + lOriginPropertyName + ';');
piUnitRegisterMappings.WriteLine('String ' + lDetinationPropertyName + ';'); piUnitRegisterMappings.WriteLine('String ' + lDetinationPropertyName + ';');
piUnitRegisterMappings.WriteLine(lOriginPropertyName + ' = "'+ lRelationTicket.OriginPropertyName + '";'); piUnitRegisterMappings.WriteLine(lOriginPropertyName + ' = "'+ lRelationTicket.OriginPropertyName + '";');
...@@ -3237,7 +3365,7 @@ begin ...@@ -3237,7 +3365,7 @@ begin
lsNomeFKA := ''; lsNomeFKA := '';
lsNomeFKB := ''; lsNomeFKB := '';
lsNomeTabelaAssociativa := ''; lsNomeTabelaAssociativa := '';
end;
lEnumRelation.MoveNext; lEnumRelation.MoveNext;
end; end;
finally finally
...@@ -3247,7 +3375,7 @@ begin ...@@ -3247,7 +3375,7 @@ begin
piUnitRegisterMappings.Outdent(); piUnitRegisterMappings.Outdent();
end; end;
procedure TUtil.GerarBodyRelationsAll_Java(piProgress: TFShowProgress; piUnitRegisterMappings: PStringWriter); procedure TUtil.GerarBodyRelationsAll_Java(piProgress: TFShowProgress; piStartAt: Integer; piEndAt: Integer; piUnitRegisterMappings: PStringWriter);
var lEnumRelation: acEnumerator; var lEnumRelation: acEnumerator;
lRelationTicket: acRelationTicket; lRelationTicket: acRelationTicket;
lClassTicketOrigem, lClassTicketDestino: acClassTicket; lClassTicketOrigem, lClassTicketDestino: acClassTicket;
...@@ -3258,7 +3386,9 @@ var lEnumRelation: acEnumerator; ...@@ -3258,7 +3386,9 @@ var lEnumRelation: acEnumerator;
lMultiplicityOrMax, lMultiplicityDsMax, lMultiplicityOrMin, lMultiplicityDsMin: integer; lMultiplicityOrMax, lMultiplicityDsMax, lMultiplicityOrMin, lMultiplicityDsMin: integer;
lOriginPropertyName, lDetinationPropertyName: string; lOriginPropertyName, lDetinationPropertyName: string;
lNumPropertyName: integer; lNumPropertyName: integer;
li: Integer;
begin begin
li := 1;
lNumPropertyName:= 0; lNumPropertyName:= 0;
if assigned(piProgress) then piProgress.ChangeMessage('Generating model mappings relation tickets...', 0, MetaModel.RelationTickets.Count); if assigned(piProgress) then piProgress.ChangeMessage('Generating model mappings relation tickets...', 0, MetaModel.RelationTickets.Count);
piUnitRegisterMappings.Indent(); piUnitRegisterMappings.Indent();
...@@ -3266,7 +3396,9 @@ begin ...@@ -3266,7 +3396,9 @@ begin
lEnumRelation := MetaModel.RelationTickets.GetEnumerator; lEnumRelation := MetaModel.RelationTickets.GetEnumerator;
try try
while not lEnumRelation.EOL do while not lEnumRelation.EOL and (li <= piEndAt) do
begin
if li >= piStartAt then
begin begin
if assigned(piProgress) then piProgress.Inc; if assigned(piProgress) then piProgress.Inc;
lRelationTicket := acRelationTicket(lEnumRelation.Current); lRelationTicket := acRelationTicket(lEnumRelation.Current);
...@@ -3367,7 +3499,7 @@ begin ...@@ -3367,7 +3499,7 @@ begin
lsNomeFKA := ''; lsNomeFKA := '';
lsNomeFKB := ''; lsNomeFKB := '';
lsNomeTabelaAssociativa := ''; lsNomeTabelaAssociativa := '';
end;
lEnumRelation.MoveNext; lEnumRelation.MoveNext;
end; end;
finally finally
...@@ -3401,7 +3533,7 @@ begin ...@@ -3401,7 +3533,7 @@ begin
begin begin
lUseCaseStateMachine := (lState as utSubMachineState).StateMachine as acUseCaseStateMachine; lUseCaseStateMachine := (lState as utSubMachineState).StateMachine as acUseCaseStateMachine;
result := Concat(result, format('lSubMachineState := utSubMachineState.Create(lStateMachine, ''%s'');', [lState.Name]), #13#10); result := Concat(result, format('lSubMachineState := utSubMachineState.Create(lStateMachine, ''%s'');', [lState.Name]), #13#10);
result := Concat(result, format('lSubMachineUseCaseTicket := piMetaModel.UseCaseTicketByCode[''%s''];', [lUseCaseStateMachine.UseCaseTicket.Code]), #13#10); result := Concat(result, format('lSubMachineUseCaseTicket := piMetaModel.GetUseCaseTicketByCode(''%s'');', [lUseCaseStateMachine.UseCaseTicket.Code]), #13#10);
result := Concat(result, format('lSubMachineState.StateMachine := acUseCaseStateMachine.Create(lSubMachineUseCaseTicket, lSubMachineState);', []), #13#10); result := Concat(result, format('lSubMachineState.StateMachine := acUseCaseStateMachine.Create(lSubMachineUseCaseTicket, lSubMachineState);', []), #13#10);
end end
else if lState is utFinalState then else if lState is utFinalState then
...@@ -3411,10 +3543,8 @@ begin ...@@ -3411,10 +3543,8 @@ begin
lStatesEnum.MoveNext; lStatesEnum.MoveNext;
end; end;
result := Concat(result, #13#10, '//Define o InitialState do StateMachine', #13#10);
result := Concat(result, format('lStateMachine.InitialState := lStateMachine.FindState(''%s'');', [piStateMachine.InitialState.Name]), #13#10); result := Concat(result, format('lStateMachine.InitialState := lStateMachine.FindState(''%s'');', [piStateMachine.InitialState.Name]), #13#10);
result := Concat(result, #13#10, '//Adiciona as transicoes dos estados', #13#10);
//Adiciona as transicoes de cada estado //Adiciona as transicoes de cada estado
lStatesEnum.MoveFirst; lStatesEnum.MoveFirst;
while not lStatesEnum.EOL do while not lStatesEnum.EOL do
...@@ -3481,7 +3611,7 @@ begin ...@@ -3481,7 +3611,7 @@ begin
end; end;
for I := 0 to lTransition.EffectsCount - 1 do for I := 0 to lTransition.EffectsCount - 1 do
result := Concat(result, format('lTransition.AddEffect(''%s'');', [lTransition.Effects[i]]), #13#10); result := Concat(result, format('lTransition.AddEffect(''%s'');', [lTransition.GetEffects(i)]), #13#10);
if Not piModelMappingsOptions.IgnoreXSDSchema then if Not piModelMappingsOptions.IgnoreXSDSchema then
begin begin
...@@ -3531,7 +3661,6 @@ begin ...@@ -3531,7 +3661,6 @@ begin
lState := utState(lStatesEnum.Current); lState := utState(lStatesEnum.Current);
if lState is utSubMachineState then if lState is utSubMachineState then
begin begin
result := Concat(result, format('// SUBSTATEMACHINE %s ///////////////////////', [utSubMachineState(lState).StateMachine.Name]), #13#10);
result := Concat(result, format('lStateMachine := lUseCaseTicket.FindStateMachine(''%s'');', [piStateMachine.Name]), #13#10); result := Concat(result, format('lStateMachine := lUseCaseTicket.FindStateMachine(''%s'');', [piStateMachine.Name]), #13#10);
result := Concat(result, format('lStateMachine := utSubMachineState(lStateMachine.FindState(''%s'')).StateMachine as acUseCaseStateMachine;', [lState.Name]), #13#10); result := Concat(result, format('lStateMachine := utSubMachineState(lStateMachine.FindState(''%s'')).StateMachine as acUseCaseStateMachine;', [lState.Name]), #13#10);
result := Concat(result, format('lStateMachine.Name := ''%s'';', [utSubMachineState(lState).StateMachine.Name]), #13#10); result := Concat(result, format('lStateMachine.Name := ''%s'';', [utSubMachineState(lState).StateMachine.Name]), #13#10);
...@@ -3622,8 +3751,10 @@ begin ...@@ -3622,8 +3751,10 @@ begin
end; end;
function TUtil.GerarBodyUseCases_CSharp(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress; piStartAt, piEndAt: Integer; function TUtil.GerarBodyUseCases_CSharp(
piUnitRegisterMappings: PStringWriter): string; piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress;
piStartAt: Integer; piEndAt: Integer; piUnitRegisterMappings: PStringWriter
): string;
var var
lEnum: acEnumerator; lEnum: acEnumerator;
lUseCaseTicket: acUseCaseTicket; lUseCaseTicket: acUseCaseTicket;
...@@ -3691,8 +3822,10 @@ begin ...@@ -3691,8 +3822,10 @@ begin
result := result + GerarBodyStateMachines_CSharp(piModelMappingsOptions, piProgress, piStartAt, piEndAt, piUnitRegisterMappings); result := result + GerarBodyStateMachines_CSharp(piModelMappingsOptions, piProgress, piStartAt, piEndAt, piUnitRegisterMappings);
end; end;
function TUtil.GerarBodyUseCases_Java(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress; piStartAt, piEndAt: Integer; function TUtil.GerarBodyUseCases_Java(
piUnitRegisterMappings: PStringWriter): string; piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress;
piStartAt: Integer; piEndAt: Integer; piUnitRegisterMappings: PStringWriter
): string;
var var
lEnum: acEnumerator; lEnum: acEnumerator;
lUseCaseTicket: acUseCaseTicket; lUseCaseTicket: acUseCaseTicket;
...@@ -3770,8 +3903,8 @@ begin ...@@ -3770,8 +3903,8 @@ begin
begin begin
lUseCaseTicket := acUseCaseTicket(lEnum.Current); lUseCaseTicket := acUseCaseTicket(lEnum.Current);
result := Concat(result, #13#10); result := Concat(result, #13#10);
result := Concat(result, format('//Gerando StateMachine para o caso de uso ''%s''', [lUseCaseTicket.Name]), #13#10); result := Concat(result, format('//UseCase ''%s''', [lUseCaseTicket.Name]), #13#10);
result := Concat(result, format('lUseCaseTicket := piMetaModel.UseCaseTicketByCode[''%s''];', [lUseCaseTicket.Code]), #13#10); result := Concat(result, format('lUseCaseTicket := piMetaModel.GetUseCaseTicketByCode(''%s'');', [lUseCaseTicket.Code]), #13#10);
result := Concat(result, 'lUseCaseTicket.StateMachine := acUseCaseStateMachine.Create(lUseCaseTicket);', #13#10, #13#10); result := Concat(result, 'lUseCaseTicket.StateMachine := acUseCaseStateMachine.Create(lUseCaseTicket);', #13#10, #13#10);
result := Concat(result, 'lStateMachine := lUseCaseTicket.StateMachine;', #13#10, #13#10); result := Concat(result, 'lStateMachine := lUseCaseTicket.StateMachine;', #13#10, #13#10);
result := Concat(result, format('lStateMachine.Name := ''%s'';', [lUseCaseTicket.StateMachine.Name]), #13#10); result := Concat(result, format('lStateMachine.Name := ''%s'';', [lUseCaseTicket.StateMachine.Name]), #13#10);
...@@ -3785,7 +3918,10 @@ begin ...@@ -3785,7 +3918,10 @@ begin
end; end;
end; end;
function TUtil.GerarBodyStateMachines_CSharp(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress; piStartAt, piEndAt: Integer; piUnitRegisterMappings: PStringWriter): string; function TUtil.GerarBodyStateMachines_CSharp(
piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress;
piStartAt: Integer; piEndAt: Integer; piUnitRegisterMappings: PStringWriter
): string;
var var
lEnum: acEnumerator; lEnum: acEnumerator;
lUseCaseTicket: acUseCaseTicket; lUseCaseTicket: acUseCaseTicket;
...@@ -3808,8 +3944,8 @@ begin ...@@ -3808,8 +3944,8 @@ begin
begin begin
lUseCaseTicket := acUseCaseTicket(lEnum.Current); lUseCaseTicket := acUseCaseTicket(lEnum.Current);
result := Concat(result, #13#10); result := Concat(result, #13#10);
result := Concat(result, #9#9#9, format('//Gerando StateMachine para o caso de uso "%s"', [lUseCaseTicket.Name]), #13#10); result := Concat(result, #9#9#9, format('//UseCase "%s"', [lUseCaseTicket.Name]), #13#10);
result := Concat(result, #9#9#9, format('lUseCaseTicket = piMetaModel.get_UseCaseTicketByCode("%s");', [lUseCaseTicket.Code]), #13#10); result := Concat(result, #9#9#9, format('lUseCaseTicket = piMetaModel.GetUseCaseTicketByCode("%s");', [lUseCaseTicket.Code]), #13#10);
result := Concat(result, #9#9#9, 'lUseCaseTicket.StateMachine = new acUseCaseStateMachine(lUseCaseTicket);', #13#10, #13#10); result := Concat(result, #9#9#9, 'lUseCaseTicket.StateMachine = new acUseCaseStateMachine(lUseCaseTicket);', #13#10, #13#10);
result := Concat(result, #9#9#9, 'lStateMachine = lUseCaseTicket.StateMachine;', #13#10, #13#10); result := Concat(result, #9#9#9, 'lStateMachine = lUseCaseTicket.StateMachine;', #13#10, #13#10);
result := Concat(result, #9#9#9, format('lStateMachine.Name = "%s";', [lUseCaseTicket.StateMachine.Name]), #13#10); result := Concat(result, #9#9#9, format('lStateMachine.Name = "%s";', [lUseCaseTicket.StateMachine.Name]), #13#10);
...@@ -3823,8 +3959,10 @@ begin ...@@ -3823,8 +3959,10 @@ begin
end; end;
end; end;
function TUtil.GerarBodyStateMachines_Java(piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress; piStartAt, piEndAt: Integer; function TUtil.GerarBodyStateMachines_Java(
piUnitRegisterMappings: PStringWriter): string; piModelMappingsOptions: TModelMappingsOptions; piProgress: TFShowProgress;
piStartAt: Integer; piEndAt: Integer; piUnitRegisterMappings: PStringWriter
): string;
var var
lEnum: acEnumerator; lEnum: acEnumerator;
lUseCaseTicket: acUseCaseTicket; lUseCaseTicket: acUseCaseTicket;
...@@ -3847,8 +3985,8 @@ begin ...@@ -3847,8 +3985,8 @@ begin
begin begin
lUseCaseTicket := acUseCaseTicket(lEnum.Current); lUseCaseTicket := acUseCaseTicket(lEnum.Current);
result := Concat(result, #13#10); result := Concat(result, #13#10);
result := Concat(result, #9#9#9, format('//Gerando StateMachine para o caso de uso "%s"', [lUseCaseTicket.Name]), #13#10); result := Concat(result, #9#9#9, format('//UseCase "%s"', [lUseCaseTicket.Name]), #13#10);
result := Concat(result, #9#9#9, format('lUseCaseTicket = piMetaModel.getUseCaseTicketByCode("%s");', [lUseCaseTicket.Code]), #13#10); result := Concat(result, #9#9#9, format('lUseCaseTicket = piMetaModel.GetUseCaseTicketByCode("%s");', [lUseCaseTicket.Code]), #13#10);
result := Concat(result, #9#9#9, 'lUseCaseTicket.setStateMachine(new acUseCaseStateMachine(lUseCaseTicket, null));', #13#10, #13#10); result := Concat(result, #9#9#9, 'lUseCaseTicket.setStateMachine(new acUseCaseStateMachine(lUseCaseTicket, null));', #13#10, #13#10);
result := Concat(result, #9#9#9, 'lStateMachine = lUseCaseTicket.getStateMachine();', #13#10, #13#10); result := Concat(result, #9#9#9, 'lStateMachine = lUseCaseTicket.getStateMachine();', #13#10, #13#10);
result := Concat(result, #9#9#9, format('lStateMachine.setName("%s");', [lUseCaseTicket.StateMachine.Name]), #13#10); result := Concat(result, #9#9#9, format('lStateMachine.setName("%s");', [lUseCaseTicket.StateMachine.Name]), #13#10);
...@@ -3885,7 +4023,7 @@ begin ...@@ -3885,7 +4023,7 @@ begin
begin begin
lUseCaseStateMachine := (lState as utSubMachineState).StateMachine as acUseCaseStateMachine; lUseCaseStateMachine := (lState as utSubMachineState).StateMachine as acUseCaseStateMachine;
result := Concat(result, #9#9#9, format('lSubMachineState = new utSubMachineState(lStateMachine, "%s");', [lState.Name]), #13#10); result := Concat(result, #9#9#9, format('lSubMachineState = new utSubMachineState(lStateMachine, "%s");', [lState.Name]), #13#10);
result := Concat(result, #9#9#9, format('lSubMachineUseCaseTicket = piMetaModel.get_UseCaseTicketByCode("%s");', [lUseCaseStateMachine.UseCaseTicket.Code]), #13#10); result := Concat(result, #9#9#9, format('lSubMachineUseCaseTicket = piMetaModel.GetUseCaseTicketByCode("%s");', [lUseCaseStateMachine.UseCaseTicket.Code]), #13#10);
result := Concat(result, #9#9#9, format('lSubMachineState.StateMachine = new acUseCaseStateMachine(lSubMachineUseCaseTicket, lSubMachineState);', []), #13#10); result := Concat(result, #9#9#9, format('lSubMachineState.StateMachine = new acUseCaseStateMachine(lSubMachineUseCaseTicket, lSubMachineState);', []), #13#10);
end end
else if lState is utFinalState then else if lState is utFinalState then
...@@ -3895,10 +4033,8 @@ begin ...@@ -3895,10 +4033,8 @@ begin
lStatesEnum.MoveNext; lStatesEnum.MoveNext;
end; end;
result := Concat(result, #13#10#9#9#9, '//Define o InitialState do StateMachine', #13#10);
result := Concat(result, #9#9#9, format('lStateMachine.InitialState = lStateMachine.FindState("%s");', [piStateMachine.InitialState.Name]), #13#10); result := Concat(result, #9#9#9, format('lStateMachine.InitialState = lStateMachine.FindState("%s");', [piStateMachine.InitialState.Name]), #13#10);
result := Concat(result, #13#10#9#9#9, '//Adiciona as transicoes dos estados', #13#10);
//Adiciona as transicoes de cada estado //Adiciona as transicoes de cada estado
lStatesEnum.MoveFirst; lStatesEnum.MoveFirst;
while not lStatesEnum.EOL do while not lStatesEnum.EOL do
...@@ -3965,7 +4101,7 @@ begin ...@@ -3965,7 +4101,7 @@ begin
end; end;
for I := 0 to lTransition.EffectsCount - 1 do for I := 0 to lTransition.EffectsCount - 1 do
result := Concat(result, #9#9#9, format('lTransition.AddEffect("%s");', [lTransition.Effects[i]]), #13#10); result := Concat(result, #9#9#9, format('lTransition.AddEffect("%s");', [lTransition.GetEffects(i)]), #13#10);
if Not piModelMappingsOptions.IgnoreXSDSchema then if Not piModelMappingsOptions.IgnoreXSDSchema then
begin begin
...@@ -4013,7 +4149,6 @@ begin ...@@ -4013,7 +4149,6 @@ begin
lState := utState(lStatesEnum.Current); lState := utState(lStatesEnum.Current);
if lState is utSubMachineState then if lState is utSubMachineState then
begin begin
result := Concat(result, #9#9#9, format('// SUBSTATEMACHINE %s ///////////////////////', [utSubMachineState(lState).StateMachine.Name]), #13#10);
result := Concat(result, #9#9#9, format('lStateMachine = lUseCaseTicket.FindStateMachine("%s");', [piStateMachine.Name]), #13#10); result := Concat(result, #9#9#9, format('lStateMachine = lUseCaseTicket.FindStateMachine("%s");', [piStateMachine.Name]), #13#10);
result := Concat(result, #9#9#9, format('lStateMachine = (acUseCaseStateMachine)(lStateMachine.FindState("%s") as utSubMachineState).StateMachine;', [lState.Name]), #13#10); result := Concat(result, #9#9#9, format('lStateMachine = (acUseCaseStateMachine)(lStateMachine.FindState("%s") as utSubMachineState).StateMachine;', [lState.Name]), #13#10);
result := Concat(result, #9#9#9, format('lStateMachine.Name = "%s";', [utSubMachineState(lState).StateMachine.Name]), #13#10); result := Concat(result, #9#9#9, format('lStateMachine.Name = "%s";', [utSubMachineState(lState).StateMachine.Name]), #13#10);
...@@ -4050,7 +4185,7 @@ begin ...@@ -4050,7 +4185,7 @@ begin
begin begin
lUseCaseStateMachine := (lState as utSubMachineState).StateMachine as acUseCaseStateMachine; lUseCaseStateMachine := (lState as utSubMachineState).StateMachine as acUseCaseStateMachine;
result := Concat(result, #9#9#9, format('lSubMachineState = new utSubMachineState(lStateMachine, "%s");', [lState.Name]), #13#10); result := Concat(result, #9#9#9, format('lSubMachineState = new utSubMachineState(lStateMachine, "%s");', [lState.Name]), #13#10);
result := Concat(result, #9#9#9, format('lSubMachineUseCaseTicket = piMetaModel.getUseCaseTicketByCode("%s");', [lUseCaseStateMachine.UseCaseTicket.Code]), #13#10); result := Concat(result, #9#9#9, format('lSubMachineUseCaseTicket = piMetaModel.GetUseCaseTicketByCode("%s");', [lUseCaseStateMachine.UseCaseTicket.Code]), #13#10);
result := Concat(result, #9#9#9, format('lSubMachineState.setStateMachine( new acUseCaseStateMachine(lSubMachineUseCaseTicket, lSubMachineState) );', []), #13#10); result := Concat(result, #9#9#9, format('lSubMachineState.setStateMachine( new acUseCaseStateMachine(lSubMachineUseCaseTicket, lSubMachineState) );', []), #13#10);
end end
else if lState is utFinalState then else if lState is utFinalState then
...@@ -4060,10 +4195,8 @@ begin ...@@ -4060,10 +4195,8 @@ begin
lStatesEnum.MoveNext; lStatesEnum.MoveNext;
end; end;
result := Concat(result, #13#10#9#9#9, '//Define o InitialState do StateMachine', #13#10);
result := Concat(result, #9#9#9, format('lStateMachine.setInitialState( lStateMachine.FindState("%s") );', [piStateMachine.InitialState.Name]), #13#10); result := Concat(result, #9#9#9, format('lStateMachine.setInitialState( lStateMachine.FindState("%s") );', [piStateMachine.InitialState.Name]), #13#10);
result := Concat(result, #13#10#9#9#9, '//Adiciona as transicoes dos estados', #13#10);
//Adiciona as transicoes de cada estado //Adiciona as transicoes de cada estado
lStatesEnum.MoveFirst; lStatesEnum.MoveFirst;
while not lStatesEnum.EOL do while not lStatesEnum.EOL do
...@@ -4130,7 +4263,7 @@ begin ...@@ -4130,7 +4263,7 @@ begin
end; end;
for I := 0 to lTransition.EffectsCount - 1 do for I := 0 to lTransition.EffectsCount - 1 do
result := Concat(result, #9#9#9, format('lTransition.AddEffect("%s");', [lTransition.Effects[i]]), #13#10); result := Concat(result, #9#9#9, format('lTransition.AddEffect("%s");', [lTransition.GetEffects(i)]), #13#10);
if Not piModelMappingsOptions.IgnoreXSDSchema then if Not piModelMappingsOptions.IgnoreXSDSchema then
begin begin
...@@ -4178,7 +4311,6 @@ begin ...@@ -4178,7 +4311,6 @@ begin
lState := utState(lStatesEnum.Current); lState := utState(lStatesEnum.Current);
if lState is utSubMachineState then if lState is utSubMachineState then
begin begin
result := Concat(result, #9#9#9, format('// SUBSTATEMACHINE %s ///////////////////////', [utSubMachineState(lState).StateMachine.Name]), #13#10);
result := Concat(result, #9#9#9, format('lStateMachine = lUseCaseTicket.FindStateMachine("%s");', [piStateMachine.Name]), #13#10); result := Concat(result, #9#9#9, format('lStateMachine = lUseCaseTicket.FindStateMachine("%s");', [piStateMachine.Name]), #13#10);
result := Concat(result, #9#9#9, format('lStateMachine = (acUseCaseStateMachine)( (utSubMachineState) lStateMachine.FindState("%s") ).getStateMachine();', [lState.Name]), #13#10); result := Concat(result, #9#9#9, format('lStateMachine = (acUseCaseStateMachine)( (utSubMachineState) lStateMachine.FindState("%s") ).getStateMachine();', [lState.Name]), #13#10);
result := Concat(result, #9#9#9, format('lStateMachine.setName( "%s" );', [utSubMachineState(lState).StateMachine.Name]), #13#10); result := Concat(result, #9#9#9, format('lStateMachine.setName( "%s" );', [utSubMachineState(lState).StateMachine.Name]), #13#10);
...@@ -4523,53 +4655,6 @@ begin ...@@ -4523,53 +4655,6 @@ begin
end; end;
procedure TUtil.GerarUnitRelationsAll(piModelMappingsOptions: TModelMappingsOptions; psFileName: string; piProgress: TFShowProgress);
var
lInstantCodeModule: TInstantCodeModule;
lInstantCodeProc: TInstantCodeProc;
lInstantCodeVar: TInstantCodeVar;
lInstantCodeBody: TInstantCodeBody;
// lInstantCodeWriter: TInstantCodeWriter;
// s: string;
begin
// Cria UNIT
lInstantCodeModule := TInstantCodeModule.Create(nil);
lInstantCodeModule.Name := 'RelationsAll';
// Section interface
lInstantCodeModule.InterfaceSection.AddUses.Name := 'acuframework';
lInstantCodeProc := lInstantCodeModule.InterfaceSection.AddProc;
lInstantCodeProc.Name := 'GenerateRelations';
lInstantCodeProc.Parameters.AddParameter('piMetaModel', 'acMetaModel', []);
lInstantCodeProc.Parameters.AddParameter('piMetaModelPersistenceMap', 'acMetaModelPersistenceMap', []);
// Section implementation
lInstantCodeModule.ImplementationSection.AddUses.Name := 'acuRepositorySQL';
lInstantCodeProc := lInstantCodeModule.ImplementationSection.AddProc;
lInstantCodeProc.Name := 'GenerateRelations';
lInstantCodeProc.Parameters.AddParameter('piMetaModel', 'acMetaModel', []);
lInstantCodeProc.Parameters.AddParameter('piMetaModelPersistenceMap', 'acMetaModelPersistenceMap', []);
lInstantCodeBody := lInstantCodeProc.Body;
lInstantCodeVar := lInstantCodeBody.Vars.Add;
lInstantCodeVar.Name := 'lRelationTicket';
lInstantCodeVar.TypeName := 'acRelationTicket';
lInstantCodeBody.Text := GerarBodyRelationsAll(piProgress);
// lInstantCodeModule.InitializationSection.CodeText := 'RegisterRelation()';
// Gerao de arquivo
lInstantCodeModule.SaveToFile(psFileName);
end;
function TUtil.GerarRelationsPartnerShips(piClassTicket: acClassTicket; piInstantCodeClass: TInstantCodeClass): string; function TUtil.GerarRelationsPartnerShips(piClassTicket: acClassTicket; piInstantCodeClass: TInstantCodeClass): string;
var li: Integer; var li: Integer;
lRelation: acRelationTicket; lRelation: acRelationTicket;
...@@ -4692,7 +4777,7 @@ begin ...@@ -4692,7 +4777,7 @@ begin
lParamsConstrutor := ''; lParamsConstrutor := '';
lsNomeClasse := piClass.Name; lsNomeClasse := piClass.Name;
lsNomeUnit := Copy(lsNomeClasse, 1, 2) + 'u' + Copy(lsNomeClasse, 3, Length(lsNomeClasse)-2); lsNomeUnit := Copy(lsNomeClasse, 1, 2) + 'u' + Copy(lsNomeClasse, 3, Length(lsNomeClasse)-2);
lClassTicket := MetaModel.ClassRegisterTicketByName[lsNomeClasse]; lClassTicket := MetaModel.GetClassTicketByName(lsNomeClasse);
lCodigoClasse := PStringWriter.Create; lCodigoClasse := PStringWriter.Create;
try try
...@@ -4881,7 +4966,7 @@ begin ...@@ -4881,7 +4966,7 @@ begin
lParamsConstrutor := ''; lParamsConstrutor := '';
lsNomeClasse := piClass.Name; lsNomeClasse := piClass.Name;
lsNomeUnit := Copy(lsNomeClasse, 1, 2) + 'u' + Copy(lsNomeClasse, 3, Length(lsNomeClasse)-2); lsNomeUnit := Copy(lsNomeClasse, 1, 2) + 'u' + Copy(lsNomeClasse, 3, Length(lsNomeClasse)-2);
lClassTicket := MetaModel.ClassRegisterTicketByName[lsNomeClasse]; lClassTicket := MetaModel.GetClassTicketByName(lsNomeClasse);
lCodigoClasse := PStringWriter.Create; lCodigoClasse := PStringWriter.Create;
try try
...@@ -5003,7 +5088,7 @@ begin ...@@ -5003,7 +5088,7 @@ begin
lsNomeClasse := piClass.Name; lsNomeClasse := piClass.Name;
lsNomeUnit := Copy(lsNomeClasse, 1, 2) + 'u' + Copy(lsNomeClasse, 3, Length(lsNomeClasse)-2); lsNomeUnit := Copy(lsNomeClasse, 1, 2) + 'u' + Copy(lsNomeClasse, 3, Length(lsNomeClasse)-2);
lClassTicket := MetaModel.ClassRegisterTicketByName[lsNomeClasse]; lClassTicket := MetaModel.GetClassTicketByName(lsNomeClasse);
lInstantCodeProject := TInstantCodeProject.Create; lInstantCodeProject := TInstantCodeProject.Create;
// Cria UNIT // Cria UNIT
...@@ -5363,10 +5448,10 @@ var ...@@ -5363,10 +5448,10 @@ var
end; end;
for i := 0 to lTransition.EffectsCount - 1 do for i := 0 to lTransition.EffectsCount - 1 do
if not assigned(lEffectObjectHash.ValueOf(lTransition.Effects[i])) then if not assigned(lEffectObjectHash.ValueOf(lTransition.GetEffects(i))) then
begin begin
AddMethod(lTransition.Effects[i]); AddMethod(lTransition.GetEffects(i));
lEffectObjectHash.Add(lTransition.Effects[i], lTransition); lEffectObjectHash.Add(lTransition.GetEffects(i), lTransition);
end; end;
lTransitionEnum.MoveNext; lTransitionEnum.MoveNext;
...@@ -5665,7 +5750,7 @@ begin ...@@ -5665,7 +5750,7 @@ begin
lsNomeTabela := Uppercase(Copy(lsNomeClasse, 0, 2)) + 'U' + Copy(lsNomeClasse, 3, Length(lsNomeClasse)-2); lsNomeTabela := Uppercase(Copy(lsNomeClasse, 0, 2)) + 'U' + Copy(lsNomeClasse, 3, Length(lsNomeClasse)-2);
lClassTicket := MetaModel.ClassRegisterTicketByName[lsNomeClasse]; lClassTicket := MetaModel.GetClassTicketByName(lsNomeClasse);
lClassToDBMapTicket := lMetaModelPersistenceMapSQL.GetClassToDBMapTicket(lClassTicket); lClassToDBMapTicket := lMetaModelPersistenceMapSQL.GetClassToDBMapTicket(lClassTicket);
lsResult := concat(lsResult, SQLScriptCreateDirectTable(lClassToDBMapTicket, piDBVendor)); lsResult := concat(lsResult, SQLScriptCreateDirectTable(lClassToDBMapTicket, piDBVendor));
...@@ -5682,8 +5767,8 @@ begin ...@@ -5682,8 +5767,8 @@ begin
(lAssociation.GetConnectionAt(1).Get_Participant as IUMLClass).Name; (lAssociation.GetConnectionAt(1).Get_Participant as IUMLClass).Name;
lClassOriginTicket := MetaModel.ClassRegisterTicketByName[((lAssociation.GetConnectionAt(0).Get_Participant as IUMLClass).Name)]; lClassOriginTicket := MetaModel.GetClassTicketByName(((lAssociation.GetConnectionAt(0).Get_Participant as IUMLClass).Name));
lClassDestTicket := MetaModel.ClassRegisterTicketByName[((lAssociation.GetConnectionAt(1).Get_Participant as IUMLClass).Name)]; lClassDestTicket := MetaModel.GetClassTicketByName(((lAssociation.GetConnectionAt(1).Get_Participant as IUMLClass).Name));
if (lAssociation.GetConnectionAt(1).Get_Multiplicity = '1') then if (lAssociation.GetConnectionAt(1).Get_Multiplicity = '1') then
......
...@@ -6,8 +6,8 @@ interface ...@@ -6,8 +6,8 @@ interface
uses uses
LCLIntf, LCLType, LMessages, Messages, SysUtils, Variants, Classes, Graphics, LCLIntf, LCLType, LMessages, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, StdCtrls, Dialogs, JvExControls, ComCtrls, ExtCtrls, Buttons, Controls, Forms, StdCtrls, Dialogs, ComCtrls, ExtCtrls, Buttons,
MaskEdit, JvBaseEdits, JvCheckBox, utuMessage, Grids, ValEdit, StarUMLintf, MaskEdit, utuMessage, Grids, ValEdit, StarUMLintf,
cxuCadastroDefinicaoClasse, IntegracaoDelphiSUML, acuModel; cxuCadastroDefinicaoClasse, IntegracaoDelphiSUML, acuModel;
type type
...@@ -473,7 +473,7 @@ begin ...@@ -473,7 +473,7 @@ begin
end; end;
end; end;
lClass := fUtil.MetaModel.ClassTicketByCode[fClassCode] as acClassTicket; lClass := fUtil.MetaModel.GetClassTicketByCode(fClassCode) as acClassTicket;
FillListViewClassData(lClass); FillListViewClassData(lClass);
lvCampos.Selected := nil; lvCampos.Selected := nil;
lvCamposClick(nil); lvCamposClick(nil);
......
...@@ -13,7 +13,7 @@ object DataBaseLogin: TDataBaseLogin ...@@ -13,7 +13,7 @@ object DataBaseLogin: TDataBaseLogin
OnShow = FormShow OnShow = FormShow
ParentFont = True ParentFont = True
Position = poOwnerFormCenter Position = poOwnerFormCenter
LCLVersion = '2.0.2.0' LCLVersion = '2.1.0.0'
object GroupBox2: TGroupBox object GroupBox2: TGroupBox
Left = 8 Left = 8
Height = 216 Height = 216
......
...@@ -103,7 +103,7 @@ begin ...@@ -103,7 +103,7 @@ begin
GetUserDSNList(cbODBCD_DSN.Items); GetUserDSNList(cbODBCD_DSN.Items);
GetDriverList(cbODBCD_DRIVERS.Items); GetDriverList(cbODBCD_DRIVERS.Items);
for lObj in gSQLDialectManager.InstancedObjects do for lObj in acSQLDialectManager.Instance.InstancedObjects do
begin begin
cbDialect.AddItem(acFactoredObject(lObj).Ticket.Code, lObj); cbDialect.AddItem(acFactoredObject(lObj).Ticket.Code, lObj);
end; end;
......
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