2010-08-01 10 views
9

E 'facile da impostare un convertitore per un certo tipo (http://x-stream.github.io/javadoc/com/thoughtworks/xstream/XStream.html dà un esempio):Come collegare un convertitore XStream solo per un determinato elemento?

xstream.registerConverter(new SqlTimestampConverter()); 
xstream.registerConverter(new DynamicProxyConverter()); 

Vorrei registrare un convertitore, ma su diversi nomi di elementi. L'interfaccia del convertitore non offre il nome dell'elemento.

Ad esempio: una data deve essere convertita in una stringa dettagliata se il nome dell'elemento (nome della proprietà) sarà in <longDate> ma breve se in <shortDate>. Come posso aggiungere diversi convertitori in base al nome della proprietà? Qualcosa come xstream.registerConverter (classe classtype, propertyname, converter) non esisteva ma sarebbe bello.

So che posso utilizzare una versione specializzata di un PrettyPrintWriter ma che sembra funzionare molto per questo semplice lavoro. Altre idee?

BTW: Potrei usare un'annotazione @XStreamConverter (XXX.class) ma non voglio usare le annotazioni. Voglio che il mio bean sia privo di annotazioni.

risposta

6

Utilizzare registerLocalConverter() anziché registerConverter().

xstream.registerLocalConverter(MyClazz.class, "property", new MyConverter()); 
Problemi correlati