Commit 6a6ad98d authored by Erika Segatto's avatar Erika Segatto

Melhorias no gerador de classes

parent 94bf16fa
...@@ -5115,6 +5115,7 @@ function TUtil.GerarClassPreview_JavaHibernate(piClass: IUMLClass): string; ...@@ -5115,6 +5115,7 @@ function TUtil.GerarClassPreview_JavaHibernate(piClass: IUMLClass): string;
lHasImport: array[0..3] of Boolean; lHasImport: array[0..3] of Boolean;
index: integer; index: integer;
lsTipoAttribute: string; lsTipoAttribute: string;
lClassTicketPai: acClassTicket;
begin begin
piCodigoClasse.WriteLine('import javax.persistence.*;'); piCodigoClasse.WriteLine('import javax.persistence.*;');
piCodigoClasse.WriteLine('import java.util.List;'); piCodigoClasse.WriteLine('import java.util.List;');
...@@ -5126,9 +5127,12 @@ function TUtil.GerarClassPreview_JavaHibernate(piClass: IUMLClass): string; ...@@ -5126,9 +5127,12 @@ function TUtil.GerarClassPreview_JavaHibernate(piClass: IUMLClass): string;
piCodigoClasse.WriteLine('import java.lang.Long;'); piCodigoClasse.WriteLine('import java.lang.Long;');
lHasImport[1] := True; lHasImport[1] := True;
end; end;
for index := 0 to piClassTicket.Attributes.Count - 1 do lClassTicketPai := piClassTicket;
while Assigned(lClassTicketPai) do
begin begin
lAttributeTicket := piClassTicket.Attributes.Objects[index] as acAttributeTicket; for index := 0 to lClassTicketPai.Attributes.Count - 1 do
begin
lAttributeTicket := lClassTicketPai.Attributes.Objects[index] as acAttributeTicket;
lsTipoAttribute := ObterTipoAtributoJava(lAttributeTicket.AttributeType); lsTipoAttribute := ObterTipoAtributoJava(lAttributeTicket.AttributeType);
if (lsTipoAttribute = 'BigDecimal') and (not lHasImport[0]) then if (lsTipoAttribute = 'BigDecimal') and (not lHasImport[0]) then
begin begin
...@@ -5151,6 +5155,8 @@ function TUtil.GerarClassPreview_JavaHibernate(piClass: IUMLClass): string; ...@@ -5151,6 +5155,8 @@ function TUtil.GerarClassPreview_JavaHibernate(piClass: IUMLClass): string;
lHasImport[2] := True; lHasImport[2] := True;
end; end;
end; end;
lClassTicketPai := lClassTicketPai.ParentClassTicket;
end;
end; end;
const const
...@@ -5163,8 +5169,10 @@ var ...@@ -5163,8 +5169,10 @@ var
lsNomeGeneratorId, lsNomeGeneratorId,
lsAtributo, lsAtributo,
lsTipoAttribute, lsTipoAttribute,
lInheritanceType,
lPackageRef: string; lPackageRef: string;
index: integer; index: integer;
lPossuiUmFilhoJoined: Boolean;
lClassTicket, lClassTicket,
lClassTicketPai: acClassTicket; lClassTicketPai: acClassTicket;
lAttributeTicket: acAttributeTicket; lAttributeTicket: acAttributeTicket;
...@@ -5215,7 +5223,20 @@ begin ...@@ -5215,7 +5223,20 @@ begin
lCodigoClasse.WriteLine(' pkColumnName = "SISBDSNUME", pkColumnValue = "'+lsNomeTabela+'", allocationSize = 1)'); lCodigoClasse.WriteLine(' pkColumnName = "SISBDSNUME", pkColumnValue = "'+lsNomeTabela+'", allocationSize = 1)');
if lClassToDBMapTicket.TypeColumnName <> '' then if lClassToDBMapTicket.TypeColumnName <> '' then
begin begin
lCodigoClasse.WriteLine('@Inheritance(strategy = InheritanceType.JOINED)'); lPossuiUmFilhoJoined := False;
lInheritanceType := 'InheritanceType.JOINED';
for index := 0 to lClassTicket.DirectDescendants.Count - 1 do
begin
if lMetaModelPersistenceMapSQL.GetClassToDBMapTicket(lClassTicket.DirectDescendants[index] as acClassTicket).TableName = lsNomeTabela
then lInheritanceType := 'InheritanceType.SINGLE_TABLE'
else lPossuiUmFilhoJoined := True;
end;
if lPossuiUmFilhoJoined and (lInheritanceType = 'InheritanceType.SINGLE_TABLE') then
begin
Result := 'Nao e possivel determinar o tipo de heranca da classe (SINGLE_TABLE ou JOINED).';
Exit;
end;
lCodigoClasse.WriteLine('@Inheritance(strategy = '+lInheritanceType+')');
lCodigoClasse.WriteLine('@DiscriminatorColumn(name = "'+lClassToDBMapTicket.TypeColumnName+'")'); lCodigoClasse.WriteLine('@DiscriminatorColumn(name = "'+lClassToDBMapTicket.TypeColumnName+'")');
end end
else else
...@@ -5496,14 +5517,17 @@ begin ...@@ -5496,14 +5517,17 @@ begin
lCodigoClasse.WriteLine('public String toString() {'); lCodigoClasse.WriteLine('public String toString() {');
lCodigoClasse.Indent(); lCodigoClasse.Indent();
lCodigoClasse.WriteLine('return "'+lsNomeClasseDB+'{ " +'); lCodigoClasse.WriteLine('return "'+lsNomeClasseDB+'{ " +');
if not lEhClasseHerdada then if not lEhClasseHerdada
lCodigoClasse.WriteLine('"id="+ '+_NomeId+' + ", " +'); then lCodigoClasse.WriteLine('"id="+ '+_NomeId+' + ", " +')
else lCodigoClasse.WriteLine('"id="+ this.get'+_NomeId+'() + ", " +');
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+'+ ", " +'); if index < lClassTicket.Attributes.Count - 1
then lCodigoClasse.WriteLine('"'+lsAtributo+'="+ '+lsAtributo+' + ", " +')
else lCodigoClasse.WriteLine('"'+lsAtributo+'="+ '+lsAtributo+' +');
end; end;
lCodigoClasse.WriteLine('"}";'); lCodigoClasse.WriteLine('" }";');
lCodigoClasse.Outdent(); lCodigoClasse.Outdent();
lCodigoClasse.WriteLine('}'); lCodigoClasse.WriteLine('}');
lCodigoClasse.WriteLine(''); lCodigoClasse.WriteLine('');
...@@ -5587,6 +5611,7 @@ function TUtil.GerarClassPreview_JavaDomain(piClass: IUMLClass): string; ...@@ -5587,6 +5611,7 @@ function TUtil.GerarClassPreview_JavaDomain(piClass: IUMLClass): string;
lHasImport: array[0..2] of Boolean; lHasImport: array[0..2] of Boolean;
index: integer; index: integer;
lsTipoAttribute: string; lsTipoAttribute: string;
lClassTicketPai: acClassTicket;
begin begin
piCodigoClasse.WriteLine('import java.util.List;'); piCodigoClasse.WriteLine('import java.util.List;');
piCodigoClasse.WriteLine('import java.util.ArrayList;'); piCodigoClasse.WriteLine('import java.util.ArrayList;');
...@@ -5597,9 +5622,12 @@ function TUtil.GerarClassPreview_JavaDomain(piClass: IUMLClass): string; ...@@ -5597,9 +5622,12 @@ function TUtil.GerarClassPreview_JavaDomain(piClass: IUMLClass): string;
piCodigoClasse.WriteLine('import java.lang.Long;'); piCodigoClasse.WriteLine('import java.lang.Long;');
lHasImport[1] := True; lHasImport[1] := True;
end; end;
for index := 0 to piClassTicket.Attributes.Count - 1 do lClassTicketPai := piClassTicket;
while Assigned(lClassTicketPai) do
begin begin
lAttributeTicket := piClassTicket.Attributes.Objects[index] as acAttributeTicket; for index := 0 to lClassTicketPai.Attributes.Count - 1 do
begin
lAttributeTicket := lClassTicketPai.Attributes.Objects[index] as acAttributeTicket;
lsTipoAttribute := ObterTipoAtributoJava(lAttributeTicket.AttributeType); lsTipoAttribute := ObterTipoAtributoJava(lAttributeTicket.AttributeType);
if (lsTipoAttribute = 'BigDecimal') and (not lHasImport[0]) then if (lsTipoAttribute = 'BigDecimal') and (not lHasImport[0]) then
begin begin
...@@ -5617,6 +5645,8 @@ function TUtil.GerarClassPreview_JavaDomain(piClass: IUMLClass): string; ...@@ -5617,6 +5645,8 @@ function TUtil.GerarClassPreview_JavaDomain(piClass: IUMLClass): string;
lHasImport[2] := True; lHasImport[2] := True;
end; end;
end; end;
lClassTicketPai := lClassTicketPai.ParentClassTicket;
end;
end; end;
const const
...@@ -5852,13 +5882,17 @@ begin ...@@ -5852,13 +5882,17 @@ begin
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="+ '+_NomeId+' + ", " +'); if lClassTicket.Attributes.Count > 0
then lCodigoClasse.WriteLine('"id="+ '+_NomeId+' + ", " +')
else lCodigoClasse.WriteLine('"id="+ '+_NomeId+' +');
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+' + ", " +'); if index < lClassTicket.Attributes.Count - 1
then lCodigoClasse.WriteLine('"'+lsAtributo+'="+ '+lsAtributo+' + ", " +')
else lCodigoClasse.WriteLine('"'+lsAtributo+'="+ '+lsAtributo+' +');
end; end;
lCodigoClasse.WriteLine('"}";'); lCodigoClasse.WriteLine('" }";');
lCodigoClasse.Outdent(); lCodigoClasse.Outdent();
lCodigoClasse.WriteLine('}'); lCodigoClasse.WriteLine('}');
lCodigoClasse.WriteLine(''); lCodigoClasse.WriteLine('');
......
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