Легко установить преобразователь для определенного типа (http://x-stream.github.io/javadoc/com/thoughtworks/xstream/XStream.html дает пример):
xstream.registerConverter(new SqlTimestampConverter());
xstream.registerConverter(new DynamicProxyConverter());
Я хотел бы зарегистрировать преобразователь, но на различных именах элементов. Интерфейс Converter не предлагает название элемента.
Например: дата должна быть преобразована в подробную строку, если имя элемента (имя свойства) будет в
но короткий, если в
. Как я могу добавить различные преобразователи на основе имени свойства? Что-то как xstream.registerConverter (Тип класса класса, propertyname, преобразователь) не существовало, но будет хорошо.
Я знаю, что могу использовать специализированную версию PrettyPrintWriter, но это, кажется, очень работает на это простое задание. Какие-либо другие идеи?
BTW: Я мог использовать аннотацию @XStreamConverter (XXX.class), но я не хочу использовать аннотации. Я хочу свой боб, свободный от любой аннотации.
Используйте registerLocalConverter ()
вместо registerConverter ()
.
xstream.registerLocalConverter( MyClazz.class, "property", new MyConverter() );