Commit 90c8807f authored by Erika Segatto's avatar Erika Segatto

[WIP] Inclui geração de classe hibernate JPA

parent 365f5316
...@@ -151,6 +151,9 @@ ...@@ -151,6 +151,9 @@
</Options> </Options>
</Linking> </Linking>
<Other> <Other>
<CompilerMessages>
<IgnoredMessages idx4105="True" idx4104="True"/>
</CompilerMessages>
<CustomOptions Value="-dUseCThreads"/> <CustomOptions Value="-dUseCThreads"/>
<OtherDefines Count="1"> <OtherDefines Count="1">
<Define0 Value="FullDebugMode"/> <Define0 Value="FullDebugMode"/>
......
...@@ -5085,30 +5085,25 @@ function TUtil.GerarClassPreview_JavaHibernate(piClass: IUMLClass): string; ...@@ -5085,30 +5085,25 @@ function TUtil.GerarClassPreview_JavaHibernate(piClass: IUMLClass): string;
else if piTipoCurio = 'acInt' then Result := 'Integer' else if piTipoCurio = 'acInt' then Result := 'Integer'
else if piTipoCurio = 'acCurrency' then Result := 'BigDecimal' else if piTipoCurio = 'acCurrency' then Result := 'BigDecimal'
else if piTipoCurio = 'acDouble' then Result := 'BigDecimal' else if piTipoCurio = 'acDouble' then Result := 'BigDecimal'
else if piTipoCurio = 'acBoolean' then Result := 'boolean'
else Result := piTipoCurio; else Result := piTipoCurio;
end; end;
procedure EscreveAtributoClasse(const piCodigoClasse: PStringWriter; piNomeAtributo, piTipoAtributo, piNomeColuna: String);
begin
piCodigoClasse.WriteLine('@Column(name = "'+piNomeColuna+'")');
piCodigoClasse.WriteLine('private ' + piTipoAtributo+' '+piNomeAtributo+';');
end;
procedure EscreveGetterSetterClasse(const piCodigoClasse: PStringWriter; piNomeAtributo, piTipoAtributo: String; piApenasGetter: Boolean = False); procedure EscreveGetterSetterClasse(const piCodigoClasse: PStringWriter; piNomeAtributo, piTipoAtributo: String; piApenasGetter: Boolean = False);
begin begin
//Escreve getter and setter //Escreve getter and setter
piCodigoClasse.WriteLine('public ' + piTipoAtributo+' get'+piNomeAtributo+'() { return '+' f'+piNomeAtributo+'; }'); piCodigoClasse.WriteLine('public ' + piTipoAtributo+' get'+piNomeAtributo+'() { return '+piNomeAtributo+'; }');
if not piApenasGetter then if not piApenasGetter then
piCodigoClasse.WriteLine('public void set'+piNomeAtributo+'('+piTipoAtributo+' pi'+piNomeAtributo+') { f'+piNomeAtributo+' = pi'+piNomeAtributo+'; }'); piCodigoClasse.WriteLine('public void set'+piNomeAtributo+'('+piTipoAtributo+' pi'+piNomeAtributo+') { '+piNomeAtributo+' = pi'+piNomeAtributo+'; }');
piCodigoClasse.WriteLine(''); piCodigoClasse.WriteLine('');
end; end;
const const
_TipoId = 'Long'; _DBTipoId = 'Long';
_NomeId = 'Id';
var var
lsNomeClasse, lsNomeClasse,
lsNomeTabela, lsNomeTabela,
lsNomeGeneratorId,
lsAtributo, lsAtributo,
lsTipoAttribute: string; lsTipoAttribute: string;
index: integer; index: integer;
...@@ -5120,12 +5115,16 @@ var ...@@ -5120,12 +5115,16 @@ var
lCodigoClasse: PStringWriter; lCodigoClasse: PStringWriter;
lParamsConstrutor: string; lParamsConstrutor: string;
lRelation: acRelationTicket; lRelation: acRelationTicket;
lRelationPersistenceMapTicket: acRelationSQLPersistenceMapTicket;
lColumnTicket: acDBColumnMapTicket;
lHasImport: array[0..2] of Boolean; lHasImport: array[0..2] of Boolean;
lEhClasseHerdada: Boolean;
begin begin
Result := ''; Result := '';
lParamsConstrutor := ''; lParamsConstrutor := '';
lsNomeClasse := piClass.Name; lsNomeClasse := piClass.Name;
lClassTicket := MetaModel.GetClassTicketByName(lsNomeClasse); lClassTicket := MetaModel.GetClassTicketByName(lsNomeClasse);
lEhClasseHerdada := Assigned(lClassTicket.ParentClassTicket);
for index := 0 to 2 do for index := 0 to 2 do
lHasImport[index] := False; lHasImport[index] := False;
...@@ -5133,9 +5132,10 @@ begin ...@@ -5133,9 +5132,10 @@ begin
try try
lCodigoClasse.WriteLine('package adapters.persistence.entities;'); lCodigoClasse.WriteLine('package adapters.persistence.entities;');
lCodigoClasse.WriteLine(''); lCodigoClasse.WriteLine('');
lCodigoClasse.WriteLine('import javax.persistence.*;'); lCodigoClasse.WriteLine('import javax.persistence.*;');
lCodigoClasse.WriteLine('import java.util.List;');
// Imports de tipos // Imports de tipos
if _TipoId = 'Long' then if _DBTipoId = 'Long' then
begin begin
lCodigoClasse.WriteLine('import java.lang.Long;'); lCodigoClasse.WriteLine('import java.lang.Long;');
lHasImport[1] := True; lHasImport[1] := True;
...@@ -5165,42 +5165,161 @@ begin ...@@ -5165,42 +5165,161 @@ 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);
lMetaModelPersistenceMapSQL := fMetaModelPersistenceMap as acMetaModelPersistenceMapSQL; lMetaModelPersistenceMapSQL := fMetaModelPersistenceMap as acMetaModelPersistenceMapSQL;
lClassToDBMapTicket := lMetaModelPersistenceMapSQL.GetClassToDBMapTicket(lClassTicket); lClassToDBMapTicket := lMetaModelPersistenceMapSQL.GetClassToDBMapTicket(lClassTicket);
// Incio da classe // Incio da classe
if Copy(lsNomeClasse, 1, 2) = 'ng' then lsNomeClasse := RightStr(lsNomeClasse, Length(lsNomeClasse)-2); lsNomeGeneratorId := 'gen' + RightStr(lsNomeClasse, Length(lsNomeClasse)-2);
lsNomeTabela := lClassToDBMapTicket.TableName; lsNomeTabela := lClassToDBMapTicket.TableName;
lsNomeClasse := lsNomeClasse + 'Entity';
lCodigoClasse.WriteLine('@Entity'); lCodigoClasse.WriteLine('@Entity');
lCodigoClasse.WriteLine('@TableGenerator(name = "'+lsNomeClasse+'", table = "SISBTNUMER", valueColumnName = "SISBNONUME",'); lCodigoClasse.WriteLine('@TableGenerator(name = "'+lsNomeGeneratorId+'", table = "SISBTNUMER", valueColumnName = "SISBNONUME",');
lCodigoClasse.WriteLine(' pkColumnName = "SISBDSNUME", pkColumnValue = "'+lsNomeTabela+'", allocationSize = 1)'); lCodigoClasse.WriteLine(' pkColumnName = "SISBDSNUME", pkColumnValue = "'+lsNomeTabela+'", allocationSize = 1)');
lCodigoClasse.WriteLine('@Inheritance(strategy = InheritanceType.JOINED)'); if lClassToDBMapTicket.TypeColumnName <> '' then
lCodigoClasse.WriteLine('@DiscriminatorColumn(name = "CX_TYPE")'); begin
lCodigoClasse.WriteLine('@Inheritance(strategy = InheritanceType.JOINED)');
lCodigoClasse.WriteLine('@DiscriminatorColumn(name = "'+lClassToDBMapTicket.TypeColumnName+'")');
end
else
if lEhClasseHerdada then
begin
lCodigoClasse.WriteLine('@DiscriminatorValue("'+lClassToDBMapTicket.DBClassMapCode+'")');
lCodigoClasse.WriteLine('@PrimaryKeyJoinColumn(name = "'+lClassToDBMapTicket.IdoDBMapTicket.GetIDOColumns+'")');
end;
lCodigoClasse.WriteLine('@Table(name = "'+lsNomeTabela+'")'); lCodigoClasse.WriteLine('@Table(name = "'+lsNomeTabela+'")');
lCodigoClasse.WriteLine('public abstract class ' + lsNomeClasse + ' {'); if lEhClasseHerdada
then lCodigoClasse.WriteLine('public abstract class ' + lsNomeClasse + ' extends '+ lClassTicket.ParentClassTicket.DisplayName+'Entity {')
else lCodigoClasse.WriteLine('public abstract class ' + lsNomeClasse + ' {');
lCodigoClasse.WriteLine(''); lCodigoClasse.WriteLine('');
lCodigoClasse.Indent(); lCodigoClasse.Indent();
// Escreve atributo id // Escreve atributo id
EscreveAtributoClasse(lCodigoClasse, _NomeId, _TipoId, 'TODO'); if not lEhClasseHerdada then
begin
lCodigoClasse.WriteLine('@Id');
lCodigoClasse.WriteLine('@Column(name = "'+lClassToDBMapTicket.IdoDBMapTicket.GetIDOColumns+'")');
lCodigoClasse.WriteLine('@GeneratedValue(generator = "'+lsNomeGeneratorId+'")');
lCodigoClasse.WriteLine('private '+_DBTipoId+' id;');
end;
// Obtem parametros da classe pai
if lEhClasseHerdada then
begin
for index := 0 to lClassTicket.ParentClassTicket.Attributes.Count - 1 do
begin
lAttributeTicket := lClassTicket.Attributes.Objects[index] as acAttributeTicket;
lsAtributo := lClassTicket.Attributes.Strings[index];
lsTipoAttribute := ObterTipoAtributo(lAttributeTicket.AttributeType);
lParamsConstrutor := lParamsConstrutor + lsTipoAttribute + ' pi'+ lsAtributo + ', ';
end;
for index := 0 to lClassTicket.RelationTicketsIn.Count - 1 do
begin
lRelation := (lClassTicket.RelationTicketsIn.Objects[index] as acRelationTicket);
if (lRelation.DestinationPropertyName <> '') then
begin
lsAtributo := lRelation.DestinationPropertyName;
if lRelation.DestinationMaxMultiplicity > 1
then lsTipoAttribute := 'List<'+ lRelation.OriginClassTicket.DisplayName +'Entity>'
else lsTipoAttribute := lRelation.OriginClassTicket.DisplayName + 'Entity';
lParamsConstrutor := lParamsConstrutor + lsTipoAttribute + ' pi'+ lsAtributo + ', ';
end;
end;
end;
// DECLARAO ATRIBUTOS: Percorre atributos da classe // DECLARAO ATRIBUTOS: Percorre atributos da classe
for index := 0 to lClassTicket.Attributes.Count - 1 do for index := 0 to lClassTicket.Attributes.Count - 1 do
begin begin
lAttributeTicket := lClassTicket.Attributes.Objects[index] as acAttributeTicket; lAttributeTicket := lClassTicket.Attributes.Objects[index] as acAttributeTicket;
lsAtributo := lClassTicket.Attributes.Strings[index]; lsAtributo := lClassTicket.Attributes.Strings[index];
lsTipoAttribute := ObterTipoAtributo(lAttributeTicket.AttributeType); lsTipoAttribute := ObterTipoAtributo(lAttributeTicket.AttributeType);
lParamsConstrutor := lParamsConstrutor + lsTipoAttribute + ' pi'+ lsAtributo + ', ';
lColumnTicket := acDBColumnMapTicket(lClassToDBMapTicket.Columns.ValueOf(UpCase(lsAtributo)));
if lAttributeTicket.DBType = 'VARCHAR'
then lCodigoClasse.WriteLine('@Column(name = "' + lColumnTicket.ColumnName + '", length = ' + IntToStr(lAttributeTicket.VarSize) + ')')
else lCodigoClasse.WriteLine('@Column(name = "' + lColumnTicket.ColumnName + '")');
lCodigoClasse.WriteLine('private ' + lsTipoAttribute + ' ' + lsAtributo + ';');
end;
// DECLARAO ATRIBUTOS: Percorre relacionamentos
for index := 0 to lClassTicket.RelationTicketsIn.Count - 1 do
begin
lRelation := (lClassTicket.RelationTicketsIn.Objects[index] as acRelationTicket);
lRelationPersistenceMapTicket := lMetaModelPersistenceMapSQL.GetRelationsSQLPersistenceMapTicket(lRelation);
if (lRelation.DestinationPropertyName <> '') then
begin
lsAtributo := lRelation.DestinationPropertyName;
if lRelation.DestinationMaxMultiplicity > 1
then lsTipoAttribute := 'List<'+ lRelation.OriginClassTicket.DisplayName +'Entity>'
else lsTipoAttribute := lRelation.OriginClassTicket.DisplayName + 'Entity';
lParamsConstrutor := lParamsConstrutor + lsTipoAttribute + ' pi'+ lsAtributo + ', ';
if lRelation.DestinationMaxMultiplicity = 1 then
begin
if lRelation.OriginMaxMultiplicity = 1
then lCodigoClasse.WriteLine('@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)')
else lCodigoClasse.WriteLine('@OneToMany(cascade = CascadeType.ALL)');
end
else
begin
if lRelation.OriginMaxMultiplicity = 1
then lCodigoClasse.WriteLine('@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)')
else lCodigoClasse.WriteLine('@ManyToMany(cascade = CascadeType.ALL)');
end;
if lRelationPersistenceMapTicket is acDirectDBRelationMapTicket
then lCodigoClasse.WriteLine('@JoinColumn(name = "'+acDirectDBRelationMapTicket(lRelationPersistenceMapTicket).FKColumnName+'")');
lCodigoClasse.WriteLine('private '+lsTipoAttribute+' '+lsAtributo + ';');
end;
end;
for index := 0 to lClassTicket.RelationTicketsOut.Count - 1 do
begin
lRelation := (lClassTicket.RelationTicketsOut.Objects[index] as acRelationTicket);
lRelationPersistenceMapTicket := lMetaModelPersistenceMapSQL.GetRelationsSQLPersistenceMapTicket(lRelation);
if (lRelation.OriginPropertyName <> '') then
begin
lsAtributo := lRelation.OriginPropertyName;
if lRelation.OriginMaxMultiplicity > 1
then lsTipoAttribute := 'List<'+ lRelation.DestinationClassTicket.DisplayName +'Entity>'
else lsTipoAttribute := lRelation.DestinationClassTicket.DisplayName + 'Entity';
if lRelation.OriginMaxMultiplicity = 1 then
begin
if lRelation.DestinationMaxMultiplicity = 1
then lCodigoClasse.Write('@OneToOne(cascade = CascadeType.ALL')
else lCodigoClasse.Write('@OneToMany(cascade = CascadeType.ALL');
end
else
begin
if lRelation.DestinationMaxMultiplicity = 1
then lCodigoClasse.Write('@ManyToOne(cascade = CascadeType.ALL')
else lCodigoClasse.Write('@ManyToMany(cascade = CascadeType.ALL');
end;
if lRelation.DestinationPropertyName <> ''
then lCodigoClasse.WriteLine(', mappedby = "'+lRelation.DestinationPropertyName+'")')
else lCodigoClasse.WriteLine(')');
if (lRelationPersistenceMapTicket is acDirectDBRelationMapTicket) and (acDirectDBRelationMapTicket(lRelationPersistenceMapTicket).FKColumnName <> '') then
lCodigoClasse.WriteLine('@JoinColumn(name = "'+acDirectDBRelationMapTicket(lRelationPersistenceMapTicket).FKColumnName+'")');
lCodigoClasse.WriteLine('private '+lsTipoAttribute+' '+lsAtributo + ';');
end;
end;
lCodigoClasse.WriteLine('');
EscreveAtributoClasse(lCodigoClasse, lsAtributo, lsTipoAttribute, ''); // GETTER/SETTER: Percorre atributos da classe
for index := 0 to lClassTicket.Attributes.Count - 1 do
begin
lAttributeTicket := lClassTicket.Attributes.Objects[index] as acAttributeTicket;
lsAtributo := lClassTicket.Attributes.Strings[index];
lsTipoAttribute := ObterTipoAtributo(lAttributeTicket.AttributeType);
EscreveGetterSetterClasse(lCodigoClasse, lsAtributo, lsTipoAttribute);
end; end;
//Escrever RelationsPartnerShips // GETTER/SETTER: Percorre relacionamentos
for index := 0 to lClassTicket.RelationTicketsIn.Count - 1 do for index := 0 to lClassTicket.RelationTicketsIn.Count - 1 do
begin begin
lRelation := (lClassTicket.RelationTicketsIn.Objects[index] as acRelationTicket); lRelation := (lClassTicket.RelationTicketsIn.Objects[index] as acRelationTicket);
if (lRelation.DestinationPropertyName <> '') then if (lRelation.DestinationPropertyName <> '') then
begin begin
//Escreve atributo
lsAtributo := lRelation.DestinationPropertyName; lsAtributo := lRelation.DestinationPropertyName;
if lRelation.DestinationMaxMultiplicity > 1 if lRelation.DestinationMaxMultiplicity > 1
then lsTipoAttribute := 'List<'+ lRelation.OriginClassTicket.DisplayName +'>' then lsTipoAttribute := 'List<'+ lRelation.OriginClassTicket.DisplayName +'Entity>'
else lsTipoAttribute := lRelation.OriginClassTicket.DisplayName; else lsTipoAttribute := lRelation.OriginClassTicket.DisplayName + 'Entity';
EscreveAtributoClasse(lCodigoClasse, lsAtributo, lsTipoAttribute, ''); if lRelation.DestinationMaxMultiplicity = 1 then
begin
EscreveGetterSetterClasse(lCodigoClasse, lsAtributo, lsTipoAttribute);
end;
end; end;
end; end;
for index := 0 to lClassTicket.RelationTicketsOut.Count - 1 do for index := 0 to lClassTicket.RelationTicketsOut.Count - 1 do
...@@ -5208,52 +5327,57 @@ begin ...@@ -5208,52 +5327,57 @@ begin
lRelation := (lClassTicket.RelationTicketsOut.Objects[index] as acRelationTicket); lRelation := (lClassTicket.RelationTicketsOut.Objects[index] as acRelationTicket);
if (lRelation.OriginPropertyName <> '') then if (lRelation.OriginPropertyName <> '') then
begin begin
//Escreve atributo
lsAtributo := lRelation.OriginPropertyName; lsAtributo := lRelation.OriginPropertyName;
if lRelation.OriginMaxMultiplicity > 1 if lRelation.OriginMaxMultiplicity > 1
then lsTipoAttribute := 'List<'+lRelation.DestinationClassTicket.DisplayName+'>' then lsTipoAttribute := 'List<'+ lRelation.DestinationClassTicket.DisplayName +'Entity>'
else lsTipoAttribute := lRelation.DestinationClassTicket.DisplayName; else lsTipoAttribute := lRelation.DestinationClassTicket.DisplayName + 'Entity';
EscreveAtributoClasse(lCodigoClasse, lsAtributo, lsTipoAttribute, ''); if lRelation.OriginMaxMultiplicity = 1 then
begin
EscreveGetterSetterClasse(lCodigoClasse, lsAtributo, lsTipoAttribute);
end;
end; end;
end; end;
lCodigoClasse.WriteLine('');
//Escrever mtodos // Escrever mtodos
//Escreve construtor com id // Escrever construtor vazio
lCodigoClasse.WriteLine(''); lCodigoClasse.WriteLine('');
lCodigoClasse.WriteLine('public '+lsNomeClasse+'('+_TipoId+' piId, '+strutils.LeftStr(lParamsConstrutor, Length(lParamsConstrutor)-2)+') {'); lCodigoClasse.WriteLine('public '+lsNomeClasse+'() { }');
lCodigoClasse.Indent(); // Escrever construtor sem id com relacionamentos
lCodigoClasse.WriteLine('id = piId;');
for index := 0 to lClassTicket.Attributes.Count - 1 do
begin
lsAtributo := lClassTicket.Attributes.Strings[index];
lCodigoClasse.WriteLine('f' + lsAtributo + ' = pi' + lsAtributo + ';');
end;
lCodigoClasse.Outdent();
lCodigoClasse.WriteLine('}');
//Escreve construtor sem id
lCodigoClasse.WriteLine(''); lCodigoClasse.WriteLine('');
lCodigoClasse.WriteLine('public '+lsNomeClasse+'('+strutils.LeftStr(lParamsConstrutor, Length(lParamsConstrutor)-2)+') {'); lCodigoClasse.WriteLine('public '+lsNomeClasse+'('+strutils.LeftStr(lParamsConstrutor, Length(lParamsConstrutor)-2)+') {');
lCodigoClasse.Indent(); lCodigoClasse.Indent();
for index := 0 to lClassTicket.Attributes.Count - 1 do for index := 0 to lClassTicket.Attributes.Count - 1 do
begin begin
lsAtributo := lClassTicket.Attributes.Strings[index]; lsAtributo := lClassTicket.Attributes.Strings[index];
lCodigoClasse.WriteLine('f' + lsAtributo + ' = pi' + lsAtributo + ';'); lCodigoClasse.WriteLine(lsAtributo + ' = pi' + lsAtributo + ';');
end;
for index := 0 to lClassTicket.RelationTicketsIn.Count - 1 do
begin
lRelation := (lClassTicket.RelationTicketsIn.Objects[index] as acRelationTicket);
if (lRelation.DestinationPropertyName <> '') then
begin
lsAtributo := lRelation.DestinationPropertyName;
if lRelation.DestinationMaxMultiplicity = 1 then
begin
lCodigoClasse.WriteLine(lsAtributo + ' = pi' + lsAtributo + ';');
end;
end;
end; end;
lCodigoClasse.Outdent(); lCodigoClasse.Outdent();
lCodigoClasse.WriteLine('}'); lCodigoClasse.WriteLine('}');
//Escrever mtodo ToString // Escrever mtodo ToString
lCodigoClasse.WriteLine(''); lCodigoClasse.WriteLine('');
lCodigoClasse.WriteLine('@Override'); lCodigoClasse.WriteLine('@Override');
lCodigoClasse.WriteLine('public String toString() {'); lCodigoClasse.WriteLine('public String toString() {');
lCodigoClasse.Indent(); lCodigoClasse.Indent();
lCodigoClasse.WriteLine('return "'+lsNomeClasse+'{ " +'); lCodigoClasse.WriteLine('return "'+lsNomeClasse+'{ " +');
lCodigoClasse.WriteLine('"id="+ id +'); if not lEhClasseHerdada then
lCodigoClasse.WriteLine('"id="+ id +');
for index := 0 to lClassTicket.Attributes.Count - 1 do for index := 0 to lClassTicket.Attributes.Count - 1 do
begin begin
lsAtributo := lClassTicket.Attributes.Strings[index]; lsAtributo := lClassTicket.Attributes.Strings[index];
lCodigoClasse.WriteLine('"'+lsAtributo+'="+ '+lsAtributo+' +'); lCodigoClasse.WriteLine('" '+lsAtributo+'="+ '+lsAtributo+' +');
end; end;
lCodigoClasse.WriteLine('"}";'); lCodigoClasse.WriteLine('"}";');
lCodigoClasse.Outdent(); lCodigoClasse.Outdent();
...@@ -5282,7 +5406,8 @@ function TUtil.GerarClassPreview_JavaDomain(piClass: IUMLClass): string; ...@@ -5282,7 +5406,8 @@ function TUtil.GerarClassPreview_JavaDomain(piClass: IUMLClass): string;
else if piTipoCurio = 'acDateTime' then Result := 'OffsetDateTime' else if piTipoCurio = 'acDateTime' then Result := 'OffsetDateTime'
else if piTipoCurio = 'acInt' then Result := 'Integer' else if piTipoCurio = 'acInt' then Result := 'Integer'
else if piTipoCurio = 'acCurrency' then Result := 'BigDecimal' else if piTipoCurio = 'acCurrency' then Result := 'BigDecimal'
else if piTipoCurio = 'acDouble' then Result := 'BigDecimal' else if piTipoCurio = 'acDouble' then Result := 'BigDecimal'
else if piTipoCurio = 'acBoolean' then Result := 'boolean'
else Result := piTipoCurio; else Result := piTipoCurio;
end; end;
...@@ -5333,7 +5458,8 @@ begin ...@@ -5333,7 +5458,8 @@ begin
lCodigoClasse := PStringWriter.Create; lCodigoClasse := PStringWriter.Create;
try try
lCodigoClasse.WriteLine('package domain;'); lCodigoClasse.WriteLine('package domain;');
lCodigoClasse.WriteLine(''); lCodigoClasse.WriteLine('');
lCodigoClasse.WriteLine('import java.util.List;');
// Imports de tipos // Imports de tipos
if _TipoId = 'Long' then if _TipoId = 'Long' then
begin begin
...@@ -5377,13 +5503,12 @@ begin ...@@ -5377,13 +5503,12 @@ begin
EscreveAtributoClasse(lCodigoClasse, lsAtributo, lsTipoAttribute, lAttributeTicket.Visibility); EscreveAtributoClasse(lCodigoClasse, lsAtributo, lsTipoAttribute, lAttributeTicket.Visibility);
end; end;
//Escrever RelationsPartnerShips // DECLARAO ATRIBUTOS: Percorre relacionamentos
for index := 0 to lClassTicket.RelationTicketsIn.Count - 1 do for index := 0 to lClassTicket.RelationTicketsIn.Count - 1 do
begin begin
lRelation := (lClassTicket.RelationTicketsIn.Objects[index] as acRelationTicket); lRelation := (lClassTicket.RelationTicketsIn.Objects[index] as acRelationTicket);
if (lRelation.DestinationPropertyName <> '') then if (lRelation.DestinationPropertyName <> '') then
begin begin
//Escreve atributo
lsAtributo := lRelation.DestinationPropertyName; lsAtributo := lRelation.DestinationPropertyName;
if lRelation.DestinationMaxMultiplicity > 1 if lRelation.DestinationMaxMultiplicity > 1
then lsTipoAttribute := 'List<'+ lRelation.OriginClassTicket.DisplayName +'>' then lsTipoAttribute := 'List<'+ lRelation.OriginClassTicket.DisplayName +'>'
...@@ -5396,7 +5521,6 @@ begin ...@@ -5396,7 +5521,6 @@ begin
lRelation := (lClassTicket.RelationTicketsOut.Objects[index] as acRelationTicket); lRelation := (lClassTicket.RelationTicketsOut.Objects[index] as acRelationTicket);
if (lRelation.OriginPropertyName <> '') then if (lRelation.OriginPropertyName <> '') then
begin begin
//Escreve atributo
lsAtributo := lRelation.OriginPropertyName; lsAtributo := lRelation.OriginPropertyName;
if lRelation.OriginMaxMultiplicity > 1 if lRelation.OriginMaxMultiplicity > 1
then lsTipoAttribute := 'List<'+lRelation.DestinationClassTicket.DisplayName+'>' then lsTipoAttribute := 'List<'+lRelation.DestinationClassTicket.DisplayName+'>'
...@@ -5406,7 +5530,7 @@ begin ...@@ -5406,7 +5530,7 @@ begin
end; end;
lCodigoClasse.WriteLine(''); lCodigoClasse.WriteLine('');
// GETTER/SETTER: Percorre atributos da classe // GETTER/SETTER: Percorre relacionamentos
EscreveGetterSetterClasse(lCodigoClasse, _NomeId, _TipoId, True); EscreveGetterSetterClasse(lCodigoClasse, _NomeId, _TipoId, True);
for index := 0 to lClassTicket.Attributes.Count - 1 do for index := 0 to lClassTicket.Attributes.Count - 1 do
begin begin
...@@ -5417,13 +5541,12 @@ begin ...@@ -5417,13 +5541,12 @@ begin
EscreveGetterSetterClasse(lCodigoClasse, lsAtributo, lsTipoAttribute); EscreveGetterSetterClasse(lCodigoClasse, lsAtributo, lsTipoAttribute);
end; end;
//Escrever RelationsPartnerShips // GETTER/SETTER: Escrever RelationsPartnerShips
for index := 0 to lClassTicket.RelationTicketsIn.Count - 1 do for index := 0 to lClassTicket.RelationTicketsIn.Count - 1 do
begin begin
lRelation := (lClassTicket.RelationTicketsIn.Objects[index] as acRelationTicket); lRelation := (lClassTicket.RelationTicketsIn.Objects[index] as acRelationTicket);
if (lRelation.DestinationPropertyName <> '') then if (lRelation.DestinationPropertyName <> '') then
begin begin
//Escreve atributo
lsAtributo := lRelation.DestinationPropertyName; lsAtributo := lRelation.DestinationPropertyName;
if lRelation.DestinationMaxMultiplicity > 1 if lRelation.DestinationMaxMultiplicity > 1
then lsTipoAttribute := 'List<'+lRelation.OriginClassTicket.DisplayName+'>' then lsTipoAttribute := 'List<'+lRelation.OriginClassTicket.DisplayName+'>'
......
...@@ -61,9 +61,9 @@ object PreviewClassCode: TPreviewClassCode ...@@ -61,9 +61,9 @@ object PreviewClassCode: TPreviewClassCode
Height = 530 Height = 530
Top = 0 Top = 0
Width = 793 Width = 793
ActivePage = tbJavaDomain ActivePage = tbJavaHibernate
Align = alClient Align = alClient
TabIndex = 5 TabIndex = 4
TabOrder = 0 TabOrder = 0
object tbObjPascal: TTabSheet object tbObjPascal: TTabSheet
Caption = 'ObjPascal' Caption = 'ObjPascal'
......
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