Alexandre_Ferreira1 17 de abr. de 2013
Já criei diversos Converts. Acho que é uma limitação mesmo da ferramenta.
Alexandre_Ferreira1 17 de abr. de 2013
Consegui.. Segue a solução:
public class Test {
public static void main ( String [] args ) {
String x = "<proposicao Ano='2010' Numero='8050' Tipo='PL' data='1154097812245'><idProposicao>490340</idProposicao></proposicao>" ;
XStream xstream1 = new XStream ();
xstream1 . processAnnotations ( ProposicaoWebServiceTO . class );
xstream1 . registerConverter ( new Test (). new TipoConverter ());
xstream1 . registerConverter ( new SingleValueCalendarConverter ());
System . out . println ( xstream1 . fromXML ( x ));
}
@XStreamAlias ( "proposicao" )
class ProposicaoWebServiceTO {
@XStreamAlias ( "idProposicao" )
private Long id ;
@XStreamAsAttribute
@XStreamAlias ( "Tipo" )
private TipoProposicaoTO tipoProposicao ;
@XStreamAsAttribute
@XStreamAlias ( "Numero" )
private int numero ;
@XStreamAsAttribute
private GregorianCalendar data = new GregorianCalendar ();
}
@Data
class TipoProposicaoTO {
private String siglaProposicao ;
}
}
Alexandre_Ferreira1 17 de abr. de 2013
class TipoConverter implements SingleValueConverter {
public String toString ( Object obj ) {
return (( TipoProposicaoTO ) obj ). getSiglaProposicao ();
}
public Object fromString ( String name ) {
TipoProposicaoTO tipoProposicaoTO = new TipoProposicaoTO ();
tipoProposicaoTO . setSiglaProposicao ( name );
return tipoProposicaoTO ;
}
public boolean canConvert ( Class type ) {
return type . equals ( TipoProposicaoTO . class );
}
}