Xstream mashal

Bom dia galera, beleza?

O meu problema é o seguinte:

Tenho um confgXstrem que faz o parse de objeto para String e de String para objeto.

Porem, apenas o metodo unmarshal do meu converter é chamado e executado corretamente.

O metodo marshal do converter nao é executado pelo Xstream.

O codigo esta assim?

		XStream xStream = ConfgXStream.confDAE;
		xStream.toXML(d);

Metodo IdentificacaoConverter

public class IdentificacaoConverter implements Converter {

	public boolean canConvert(Class clazz) {
		return clazz.equals(IdentificacaoIf.class);
	}
	
	public void marshal(Object value, HierarchicalStreamWriter writer, MarshallingContext context) {
		System.out.println("entrei dentro do marshal");
	}

	public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
		IdentificacaoIf iden = null;
		
		while(reader.hasMoreChildren()) {
			reader.moveDown();
			
			System.out.println(reader.getValue());
			System.out.println(reader.getNodeName());
			
			if(reader.getNodeName() != null) {
				if(reader.getNodeName().equals("CNPJ"))
					iden = new IdentificacaoCNPJ(reader.getValue());
	
				else if(reader.getNodeName().equals("CPF")) 
					iden = new IdentificacaoCPF(reader.getValue());
				
				else if(reader.getNodeName().equals("OUTROS"))
					iden = new IdentificacaoOutros(reader.getValue());
			} 
			
			reader.moveUp();
		}
		
		return iden;
	}
}

Quando executado o comando toXML do xstream o metodo marshal seria chamado e nao o chama.

Alguem sabe o porquê?

donatinho

Pare de sofrer com o XStream… Use o Simple XML - http://simple.sourceforge.net/

Muito mais fácil de usar e não precisar ficar criando N conversores.

[]´s