Conversão de objetos entre classes[RESOLVIDO]

Olá pessoal.

Estou trabalhando em um módulo de meu projeto, onde ocorre o seguinte problema:

Estou querendo popular um <h:dataTable></h:dataTable> em minha view JSF, onde seleciono um dado de um lista já persistida em meu Entity Bean Assunto.java, e como tenho um contexto de conversação, tenho acesso ao action Listener public void armarzenarDSI().

Ao clicar em cadastre-se, o novo usuário insere os seu dados pessoais e seleciona em um menu os assunto nas quais ele quer receber informações via e-mail. Selecionando um assunto qualquer em uma lista, ao clicar no botão inserir, ele popula uma lista de assutos List assuntos que é um atributo de DSI.java. Segue abaixo trecho do código que eu implementei.

Código no JSF dsi_edit.xhtml

    Seleciona assunto em um lista:

<h:selectOneMenu id=“assuntosMenu” value="#{assuntoCategoriaManager.assunto}">

               <h:selectItem id="assuntoItem" value="#{assunto.nome} rendered="#{dsi.nome}"/>

</h:selectOneMenu>
<h:commandButton id=“assunto” value=“Inserir” action="#{usuarioManager.armazenarDSI(dsi.nome)}"/>

Segue o código do método que está no Managed Bean UsuarioManager.java

public void armazenarDSI(Assunto assunto){

                 //Set uma instância de Assunto passado pelo parâmetro do método
                 dsi.setAssunto(assunto)
                 //Se a lista de Assuntos de DSI for nula, então
                  if(dsi.getAssuntos() == null){
                     //Cria uma nova lista   
                     dsi.setAssuntos(new ArrayList<Assuntos>());


                  }

                   //Adiciona um assunto a List<Assunto> assuntos da classe DSI.java
                   dsi.getAssuntos().add(assunto);

}//fim do metodo

Tudo segue bem até aqui, não ocorre um exception por passar um valor, o que acontece é que ao clicar no botão inserir da view dsi_edit.xhtml, me imprime uma mensagem que traduzindo me diz que o tipo assunto da classe entity Assunto não pode ser convertido para um tipo da classe java.lang.Boolean.

Esse meu projeto utiliza JSF, JBoss Seam e server JBoss AS 5.0.1 GA

Alguém já pegou esse erro e como faço para resolver.

Qualquer ajuda é válida

Grato.

Marcelo

[quote=Silveira.Marcelo]Olá pessoal.

Estou trabalhando em um módulo de meu projeto, onde ocorre o seguinte problema:

Estou querendo popular um <h:dataTable></h:dataTable> em minha view JSF, onde seleciono um dado de um lista já persistida em meu Entity Bean Assunto.java, e como tenho um contexto de conversação, tenho acesso ao action Listener public void armarzenarDSI().

Ao clicar em cadastre-se, o novo usuário insere os seu dados pessoais e seleciona em um menu os assunto nas quais ele quer receber informações via e-mail. Selecionando um assunto qualquer em uma lista, ao clicar no botão inserir, ele popula uma lista de assutos List assuntos que é um atributo de DSI.java. Segue abaixo trecho do código que eu implementei.

Código no JSF dsi_edit.xhtml

    Seleciona assunto em um lista:

<h:selectOneMenu id=“assuntosMenu” value="#{assuntoCategoriaManager.assunto}">

               <h:selectItem id="assuntoItem" value="#{assunto.nome} rendered="#{dsi.nome}"/>

</h:selectOneMenu>
<h:commandButton id=“assunto” value=“Inserir” action="#{usuarioManager.armazenarDSI(dsi.nome)}"/>

Segue o código do método que está no Managed Bean UsuarioManager.java

public void armazenarDSI(Assunto assunto){

                 //Set uma instância de Assunto passado pelo parâmetro do método
                 dsi.setAssunto(assunto)
                 //Se a lista de Assuntos de DSI for nula, então
                  if(dsi.getAssuntos() == null){
                     //Cria uma nova lista   
                     dsi.setAssuntos(new ArrayList<Assuntos>());


                  }

                   //Adiciona um assunto a List<Assunto> assuntos da classe DSI.java
                   dsi.getAssuntos().add(assunto);

}//fim do metodo

Tudo segue bem até aqui, não ocorre um exception por passar um valor, o que acontece é que ao clicar no botão inserir da view dsi_edit.xhtml, me imprime uma mensagem que traduzindo me diz que o tipo assunto da classe entity Assunto não pode ser convertido para um tipo da classe java.lang.Boolean.

Esse meu projeto utiliza JSF, JBoss Seam e server JBoss AS 5.0.1 GA

Alguém já pegou esse erro e como faço para resolver.

Qualquer ajuda é válida

Grato.

Marcelo

[/quote]

Pessoal consegui resolver este problema simplesmente inserindo a linha de comando:

[code]
public void armazenarDSI(Assunto assunto){

	//obtem o valor do parametro passado pelo argumento dsi.nome da view dsi_edit.xhtml
	//configura o assunto a ser inserido na lista de Assuntos na Entity Bean DSI.java
	dsi.setAssunto(assunto);
	
	//Se a lista de Assuntos for nula, então
	if(dsi.getAssuntos() == null){
		
		//Configura uma nova lista a ser popula em DSI.java
		dsi.setAssuntos(new ArrayList<Assunto>());
	}
		//Adiciona um assunto na lista de Assunto adicionando
		//um registro da Entity Assunto.java
		dsi.getAssuntos().listIterator().add(assunto);
}[/code]

Eu comento o código explicando tudo.

Um abraço comunidade.