davidbuzatto 15 de jul. de 2010
O xml que você postou é o que está gerando ou é o que você deseja?
Explique um pouco melhor seu problema…
E faça um favor para você mesmo, não use o XStream… Já usei e sempre tive alguns problemas. Depois que encontrei o Simple XML não tive mais nenhum problema. Dê uma olhada http://simple.sourceforge.net/
[]´s
donatinho 15 de jul. de 2010
Oi davidbuzatto, como vai?
Pois bem, vou tentar ser mais claro.
O xml é o seguinte:
porem a classe Solicitante implementa a interface Identificacao que instancia um objeto IdentificacaoCNPJ.
SolicitanteModel solMod = new SolicitanteModel ();
solMod . setIdentificacao ( new IdentificacaoCNPJ ( "999999999999999" ));
Assim, estou usando o XStream, porém consigo transformar de xml para objeto, so que nao consigo ler o valor do atributo CNPJ, sempre retorna vazio.
:shock:
donatinho 15 de jul. de 2010
Galera, nao sei se estou sendo claro com minha duvida…
entao, acho que vou melhor a pergunta…
como faco para converter de string para objeto classes que implementam interfaces . . .
donatinho 16 de jul. de 2010
Bom dia a todos!
Consegui resolver o problema da seguinte forma:
criei uma classe que implementa converter
public class IdentificacaoCNPJConverter implements Converter {
public void marshal ( Object value , HierarchicalStreamWriter writer , MarshallingContext context ) {
}
public Object unmarshal ( HierarchicalStreamReader reader , UnmarshallingContext context ) {
IdentificacaoCNPJ iden = null ;
while ( reader . hasMoreChildren ()) {
reader . moveDown ();
if ( reader . getNodeName () != null && reader . getNodeName (). equals ( "CNPJ" )) {
iden = new IdentificacaoCNPJ ( reader . getValue ());
}
reader . moveUp ();
}
return iden ;
}
public boolean canConvert ( Class clazz ) {
return clazz . equals ( IdentificacaoIf . class );
}
}
na classe do confXstream construi o codigo:
xstream . alias ( "solicitante" , SolicitanteModel . class );
xstream . alias ( "identificacao" , IdentificacaoIf . class );
xstream . alias ( "identificacao" , IdentificacaoCNPJ . class );
xstream . aliasField ( "CNPJ" , IdentificacaoCNPJ . class , "identificacao" );
assim, a conversao de string para objeto funcionou…
See ya
donatinho
:roll: