Galera se eu tiver uma hierarquia de classes, por exemplo:
public class Pessoa {}
public class PessoaFisica extends Pessoa {}
public class PessoaJuridica extends Pessoa {}
Eu terei que criar um controller pra cada tipo ou um método pra cada tipo? Não dá pra colocar o tipo mais genérico?
Exemplo:
public class PessoasController {
public void add(Pessoa pessoa) { //isso não vai funcionar pra Pessoa jurídica né?
}
}
Estou usando o vrptor 3 e to precisando modelar classes desse tipo. Só que acho que fica meio estranho eu ter 3 controllers pra cada uma ou vários métodos add pra cada tipo…
o problema é que o VRaptor não tem como saber se precisa instanciar uma pessoa física ou jurídica…
e é meio difícil definir um jeito fácil de fazer isso…
na última versão do vraptor(snapshot), dá pra fazer algo do tipo:
passar um parâmetro na requisição:
criar um converter para pessoa:
@Convert(Pessoa.class)
public class PessoaConverter implements Converter<Pessoa> {
public Pessoa convert(String value, ....) {
if ("PessoaFisica".equals(value)) { // value é o que veio no parâmetro
return new PessoaFisica();
}
//....
}
}
daí o VRaptor vai continuar populando a pessoa com uma instância da pessoa física…
isso é o suficiente pra vc?
o snapshot em questão é esse:
https://oss.sonatype.org/content/repositories/snapshots/br/com/caelum/vraptor/3.4.0-SNAPSHOT/vraptor-3.4.0-20110505.142301-2.jar