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

Melhorias no gerador de classes

parent 94bf16fa
......@@ -5114,7 +5114,8 @@ function TUtil.GerarClassPreview_JavaHibernate(piClass: IUMLClass): string;
lAttributeTicket: acAttributeTicket;
lHasImport: array[0..3] of Boolean;
index: integer;
lsTipoAttribute: string;
lsTipoAttribute: string;
lClassTicketPai: acClassTicket;
begin
piCodigoClasse.WriteLine('import javax.persistence.*;');
piCodigoClasse.WriteLine('import java.util.List;');
......@@ -5126,30 +5127,35 @@ function TUtil.GerarClassPreview_JavaHibernate(piClass: IUMLClass): string;
piCodigoClasse.WriteLine('import java.lang.Long;');
lHasImport[1] := True;
end;
for index := 0 to piClassTicket.Attributes.Count - 1 do
lClassTicketPai := piClassTicket;
while Assigned(lClassTicketPai) do
begin
lAttributeTicket := piClassTicket.Attributes.Objects[index] as acAttributeTicket;
lsTipoAttribute := ObterTipoAtributoJava(lAttributeTicket.AttributeType);
if (lsTipoAttribute = 'BigDecimal') and (not lHasImport[0]) then
begin
piCodigoClasse.WriteLine('import java.math.BigDecimal;');
lHasImport[0] := True;
end
else if (lsTipoAttribute = 'Long') and (not lHasImport[1]) then
begin
piCodigoClasse.WriteLine('import java.lang.Long;');
lHasImport[1] := True;
end
else if (lsTipoAttribute = 'OffsetDateTime') and (not lHasImport[2]) then
begin
piCodigoClasse.WriteLine('import java.time.OffsetDateTime;');
lHasImport[2] := True;
end
else if (lsTipoAttribute = 'Boolean') and (not lHasImport[3]) then
for index := 0 to lClassTicketPai.Attributes.Count - 1 do
begin
piCodigoClasse.WriteLine('import java.lang.Boolean;');
lHasImport[2] := True;
lAttributeTicket := lClassTicketPai.Attributes.Objects[index] as acAttributeTicket;
lsTipoAttribute := ObterTipoAtributoJava(lAttributeTicket.AttributeType);
if (lsTipoAttribute = 'BigDecimal') and (not lHasImport[0]) then
begin
piCodigoClasse.WriteLine('import java.math.BigDecimal;');
lHasImport[0] := True;
end
else if (lsTipoAttribute = 'Long') and (not lHasImport[1]) then
begin
piCodigoClasse.WriteLine('import java.lang.Long;');
lHasImport[1] := True;
end
else if (lsTipoAttribute = 'OffsetDateTime') and (not lHasImport[2]) then
begin
piCodigoClasse.WriteLine('import java.time.OffsetDateTime;');
lHasImport[2] := True;
end
else if (lsTipoAttribute = 'Boolean') and (not lHasImport[3]) then
begin
piCodigoClasse.WriteLine('import java.lang.Boolean;');
lHasImport[2] := True;
end;
end;
lClassTicketPai := lClassTicketPai.ParentClassTicket;
end;
end;
......@@ -5162,9 +5168,11 @@ var
lsNomeTabela,
lsNomeGeneratorId,
lsAtributo,
lsTipoAttribute,
lsTipoAttribute,
lInheritanceType,
lPackageRef: string;
index: integer;
lPossuiUmFilhoJoined: Boolean;
lClassTicket,
lClassTicketPai: acClassTicket;
lAttributeTicket: acAttributeTicket;
......@@ -5215,7 +5223,20 @@ begin
lCodigoClasse.WriteLine(' pkColumnName = "SISBDSNUME", pkColumnValue = "'+lsNomeTabela+'", allocationSize = 1)');
if lClassToDBMapTicket.TypeColumnName <> '' then
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+'")');
end
else
......@@ -5496,14 +5517,17 @@ begin
lCodigoClasse.WriteLine('public String toString() {');
lCodigoClasse.Indent();
lCodigoClasse.WriteLine('return "'+lsNomeClasseDB+'{ " +');
if not lEhClasseHerdada then
lCodigoClasse.WriteLine('"id="+ '+_NomeId+' + ", " +');
if not lEhClasseHerdada
then lCodigoClasse.WriteLine('"id="+ '+_NomeId+' + ", " +')
else lCodigoClasse.WriteLine('"id="+ this.get'+_NomeId+'() + ", " +');
for index := 0 to lClassTicket.Attributes.Count - 1 do
begin
lsAtributo := lClassTicket.Attributes.Strings[index];
lCodigoClasse.WriteLine('" '+lsAtributo+'="+ '+lsAtributo+'+ ", " +');
lsAtributo := lClassTicket.Attributes.Strings[index];
if index < lClassTicket.Attributes.Count - 1
then lCodigoClasse.WriteLine('"'+lsAtributo+'="+ '+lsAtributo+' + ", " +')
else lCodigoClasse.WriteLine('"'+lsAtributo+'="+ '+lsAtributo+' +');
end;
lCodigoClasse.WriteLine('"}";');
lCodigoClasse.WriteLine('" }";');
lCodigoClasse.Outdent();
lCodigoClasse.WriteLine('}');
lCodigoClasse.WriteLine('');
......@@ -5587,6 +5611,7 @@ function TUtil.GerarClassPreview_JavaDomain(piClass: IUMLClass): string;
lHasImport: array[0..2] of Boolean;
index: integer;
lsTipoAttribute: string;
lClassTicketPai: acClassTicket;
begin
piCodigoClasse.WriteLine('import java.util.List;');
piCodigoClasse.WriteLine('import java.util.ArrayList;');
......@@ -5597,25 +5622,30 @@ function TUtil.GerarClassPreview_JavaDomain(piClass: IUMLClass): string;
piCodigoClasse.WriteLine('import java.lang.Long;');
lHasImport[1] := True;
end;
for index := 0 to piClassTicket.Attributes.Count - 1 do
lClassTicketPai := piClassTicket;
while Assigned(lClassTicketPai) do
begin
lAttributeTicket := piClassTicket.Attributes.Objects[index] as acAttributeTicket;
lsTipoAttribute := ObterTipoAtributoJava(lAttributeTicket.AttributeType);
if (lsTipoAttribute = 'BigDecimal') and (not lHasImport[0]) then
begin
piCodigoClasse.WriteLine('import java.math.BigDecimal;');
lHasImport[0] := True;
end
else if (lsTipoAttribute = 'Long') and (not lHasImport[1]) then
begin
piCodigoClasse.WriteLine('import java.lang.Long;');
lHasImport[1] := True;
end
else if (lsTipoAttribute = 'OffsetDateTime') and (not lHasImport[2]) then
for index := 0 to lClassTicketPai.Attributes.Count - 1 do
begin
piCodigoClasse.WriteLine('import java.time.OffsetDateTime;');
lHasImport[2] := True;
lAttributeTicket := lClassTicketPai.Attributes.Objects[index] as acAttributeTicket;
lsTipoAttribute := ObterTipoAtributoJava(lAttributeTicket.AttributeType);
if (lsTipoAttribute = 'BigDecimal') and (not lHasImport[0]) then
begin
piCodigoClasse.WriteLine('import java.math.BigDecimal;');
lHasImport[0] := True;
end
else if (lsTipoAttribute = 'Long') and (not lHasImport[1]) then
begin
piCodigoClasse.WriteLine('import java.lang.Long;');
lHasImport[1] := True;
end
else if (lsTipoAttribute = 'OffsetDateTime') and (not lHasImport[2]) then
begin
piCodigoClasse.WriteLine('import java.time.OffsetDateTime;');
lHasImport[2] := True;
end;
end;
lClassTicketPai := lClassTicketPai.ParentClassTicket;
end;
end;
......@@ -5852,13 +5882,17 @@ begin
lCodigoClasse.WriteLine('public String toString() {');
lCodigoClasse.Indent();
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
begin
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;
lCodigoClasse.WriteLine('"}";');
lCodigoClasse.WriteLine('" }";');
lCodigoClasse.Outdent();
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