JSF - Como diferenciar 2 variaveis do mesmo tipo dentro de uma classe

Ola pessoal
nem sei se o titulo esta correto, porem, nao sei como me expressar direito nesse caso
mas vamos la
eu tenho 2 classes

Pessoa

public class Pessoa  implements Serializable {

    private int id;
    private String nome;
    private Date nascimento;
    private Documento documento = new Documento();
    private Status status;
}

PessoaFisica

public class PessoaFisica extends Pessoa {

     private static final long serialVersionUID = 1094580938504390L;

     private EstadoCivil estadoCivil;

    private Escolaridade escolaridade;

    private CursoSuperior cursoSuperior;

    private int profissao;

    private Sexo sexo;

Documento

public class Documento implements Serializable{

    private String descricao;
    private DocumentoOrgaoExpeditor orgaoExpeditor;
    private int tipo;
}

o problema que estou tendo
eu tenho que criar os documentos
CPF, RG
a ideia que tenho é criar um array de documento, ai populo com os que preciso
porem, eu nao sei fazer isso
e ainda tem a parte JSF
onde eu tenho o seguinte

<h:inputText id="pessoaDocCPF" value="#{pessoa.pessoaFisicaDB.pessoaFisica.documento.descricao}" maxlength="20" size="21" required="true" styleClass="FormCampo"></h:inputText>
<h:inputText id="pessoaDocRG" value="#{pessoa.pessoaFisicaDB.pessoaFisica.documento.descricao}" maxlength="20" size="21" required="true" styleClass="FormCampo"></h:inputText>

e é nesse parte que me complico mais ainda
no ManagedBean, como eu faco para o JSF pegar os valores de CPF e do RG de forma separada?

por enqto acho que é so

abs
T+

Oi Krusst,

cria dois atributos documento.

private Documento documentoRG = new Documento(); private Documento documentoCPF = new Documento();

[quote=maurenginaldo]Oi Krusst,

cria dois atributos documento.

private Documento documentoRG = new Documento(); private Documento documentoCPF = new Documento(); [/quote]

onde eu crio ?
no managedbeam?

obrigado
T+

[quote=osmio]Cria um enum com os tipos de documento possíveis. Depois vc verifica qual o enum que a classe esta te passando.

PS. Esta é apenas uma de muitas maneiras que voce pode fazer esse tipo de verificação.
De uma olhada nos recursos que um enum pode te trazer, e veja a melhor forma de retornar o tipo de documento.

Abaixo um modelo de classes:

[code]

public class Documento {

private String descricao;
private DocumentoOrgaoExpeditor orgaoExpeditor;
private TipoDeDocumento tipo;

public void verificaTipoDeDocumento() {

	// dai vc poderia recuperar aqui o tipo de documento que esta cadastrado
	if (tipo == TipoDeDocumento.RG) {
		System.out.println("documento do tipo RG");
	} else if (tipo == TipoDeDocumento.CPF) {
		System.out.println("documento do tipo CPF");
	} else if (tipo == TipoDeDocumento.CARTEIRA_TRABALHO) {
		System.out.println("documento do tipo Carteira de Trabalho");
	} else if (tipo == TipoDeDocumento.TITULO_ELEITOR) {
		System.out.println("documento do tipo Titulo de Eleitor");
	} else if (tipo == TipoDeDocumento.PIS_PASEP) {
		System.out.println("documento do tipo PIS/PASEP");
	} else if (tipo == TipoDeDocumento.PASSAPORTE) {
		System.out.println("documento do tipo Passaporte");
	} else {
		System.out.println("tipo de documento não identificado.");
	}

}

}

public enum TipoDeDocumento {

RG, CPF, TITULO_ELEITOR, PASSAPORTE, PIS_PASEP, CARTEIRA_TRABALHO;

}

[/code][/quote]

entendi
mas o problema é
como eu faco isso jo jsf?
é ai que estou tendo problemas
poderia me ajudar nessa parte

obrigado
T+

[quote=Krusst]

onde eu crio ?
no managedbeam?

obrigado
T+[/quote]

Sim.
E o seu Jsf ficaria assim:

<h:inputText id="pessoaDocCPF" value="#{pessoa.pessoaFisicaDB.pessoaFisica.documentoRG.descricao}" maxlength="20" size="21" required="true" styleClass="FormCampo"></h:inputText> <h:inputText id="pessoaDocRG" value="#{pessoa.pessoaFisicaDB.pessoaFisica.documentoCPF.descricao}" maxlength="20" size="21" required="true" styleClass="FormCampo"></h:inputText>

Cria um enum com os tipos de documento possíveis. Depois vc verifica qual o enum que a classe esta te passando.

PS. Esta é apenas uma de muitas maneiras que voce pode fazer esse tipo de verificação.
De uma olhada nos recursos que um enum pode te trazer, e veja a melhor forma de retornar o tipo de documento.

Abaixo um modelo de classes:


public class Documento {

	private String descricao;
	private DocumentoOrgaoExpeditor orgaoExpeditor;
	private TipoDeDocumento tipo;

	public void verificaTipoDeDocumento() {

		// dai vc poderia recuperar aqui o tipo de documento que esta cadastrado
		if (tipo == TipoDeDocumento.RG) {
			System.out.println("documento do tipo RG");
		} else if (tipo == TipoDeDocumento.CPF) {
			System.out.println("documento do tipo CPF");
		} else if (tipo == TipoDeDocumento.CARTEIRA_TRABALHO) {
			System.out.println("documento do tipo Carteira de Trabalho");
		} else if (tipo == TipoDeDocumento.TITULO_ELEITOR) {
			System.out.println("documento do tipo Titulo de Eleitor");
		} else if (tipo == TipoDeDocumento.PIS_PASEP) {
			System.out.println("documento do tipo PIS/PASEP");
		} else if (tipo == TipoDeDocumento.PASSAPORTE) {
			System.out.println("documento do tipo Passaporte");
		} else {
			System.out.println("tipo de documento não identificado.");
		}

	}

}



public enum TipoDeDocumento {
	
	RG, CPF, TITULO_ELEITOR, PASSAPORTE, PIS_PASEP, CARTEIRA_TRABALHO;

}