Bom dia a todos,
Meu problema é o seguinte: tenho uma herança em que se divide em Pessoa, PessoaFisica, PessoaJuridica, Professor e ServidorPublico;
Pessoa:
public class Pessoa {
protected long id;
protected String nome;
protected String email;
protected String senha;
protected String login;
protected long telefoneResidencial;
protected long telefoneComercial;
protected long telefoneCelular;
protected Endereco endereco = new Endereco();
protected String role;
}
PessoaFisica:
public class PessoaFisica extends Pessoa{
protected int cpf;
protected int matricula;
protected int rg;
}
PessoaJuridica:
public class PessoaJuridica extends Pessoa{
private long cnpj;
private List<Pessoa> representantes;
private String maskCnpj;
public String getMaskCnpj(){
String cnpj = String.valueOf(this.cnpj);
return cnpj.substring(0, 3)+"."+cnpj.substring(3, 6)+"."+cnpj.substring(6, 9)+"/"+cnpj.substring(9,13)+"-"+cnpj.substring(13,15);
}
}
Professor:
public class Professor extends PessoaFisica{
private List<Disciplina> disciplinas = new ArrayList<Disciplina>();
private Funcao funcao;
}
ServidorPublico:
public class ServidorPublico extends PessoaFisica{
private Cargo cargo;
}
Então, no meu sistema eu preciso fazer o cadastro de Pessoa mas eu gostaria que no cadastro houvesse apenas uma página para eu não precisar repetir todo o código de pessoa nas filhas. Eu pensei em uma única página em que através de comboBox eu escolho qual filha eu devo cadastrar mas eu não sei como referenciar os dados de Pessoa para as minhas filhas, para ficar mais claro vou colocar um trecho do código:
<s:decorate template="/template/edit.xhtml">
<ui:define name="label">Nome</ui:define>
<h:inputHidden id="cod"
value="#{pessoaMB.pessoa.id}" />
<h:inputText id="nome"
value="#{pessoaMB.pessoa.nome}" required="true"
size="50" />
</s:decorate>
Aqui eu mostro o campo nome de Pessoa, mas eu queria que este valor fosse para qualquer uma das filhas em tempo de execução, eu não posso colocar ali em value o valor #{pessoaJuridicaMB.pessoaJuridica.nome} porque no caso eu só estaria cadastrando pessoa jurídica.
Desculpe se não fui muito claro, tentei exemplificar o máximo possível.
Obrigado pela atenção.