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