Prezados, tudo bem? ^^
Alguém pode me dar uma forcinha com um jeito melhor de fazer algo?
O que eu desejo é utilizar o DogConverter para transformar um Dog em um DogIntegration. Blz?
(Objeto, ObjetosIntegration e Converter…é exatamente como está abaixo que se encontra a arquitetura de meu projeto Ok?)
Porém do jeito que se encontra abaixo, vocês podem verificar que irá entrar em loop infinito por causa de uma associação bidirecional xD
Um objeto iria chamar o converter do outro e assim iam ficar sem chamando…como vocês resolveriam isso?
Um amigo do serviço fez com um método recursivo do tamanho do mundo…
Deve ter um jetio simples de fazer isso, não é possível ¬¬
class Dog {
String nome;
Cat cat;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Cat getCat() {
return cat;
}
public void setCat(Cat cat) {
this.cat = cat;
}
}
class Cat {
String nome;
Dog dog;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
}
class DogIntegration {
String nome;
CatIntegration catIntegration;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public CatIntegration getCatIntegration() {
return catIntegration;
}
public void setCatIntegration(CatIntegration catIntegration) {
this.catIntegration = catIntegration;
}
}
class CatIntegration {
String nome;
DogIntegration dogIntegration;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public DogIntegration getDogIntegration() {
return dogIntegration;
}
public void setDogIntegration(DogIntegration dogIntegration) {
this.dogIntegration = dogIntegration;
}
}
class DogConverter {
public static DogIntegration converterDogParaDogIntegration(Dog dog) {
DogIntegration dogIntegration = new DogIntegration();
BeanUtils.copyProperties(dog, dogIntegration); // BeanUtils do
// SpringFramework. Copias as propriedades de um para o outro caso os nomes sejam iguais. Não funciona com dog.cat para dogIntegration.CatIntegration.
dogIntegration.setCatIntegration(CatConverter
.converterCatParaCatIntegration(dog.getCat()));
return dogIntegration;
}
}
class CatConverter {
public static CatIntegration converterCatParaCatIntegration(Cat cat) {
CatIntegration catIntegration = new CatIntegration();
BeanUtils.copyProperties(cat, catIntegration); // BeanUtils do
// SpringFramework.
catIntegration.setDogIntegration(DogConverter
.converterDogParaDogIntegration(cat.getDog()));
return catIntegration;
}
}
Desde já, agradeço.
Abraços.