Зарегистрируйте все события создания объекта в JAXB

1

Рассмотрим образец XML документа, который неармируется в структуру объектов в java с помощью JAXB, например:

Unmarshaller um = jc.createUnmarshaller();
RootElement object = um.unmarshal(inputStream);

Для некоторых целей я хочу иметь возможность обрабатывать события каждого нового объекта создания этой структуры. Внутри обработчиков я бы хотел иметь ссылки на эти вновь созданные объекты. Интересно: возможно ли это как-то в JAXB?

Более конкретно, если моя структура выглядит примерно так:

public class RootElement { 
      ChildElementType1 child1;
      ChildElementType2 child2;
      ...
}

Итак, я хочу обрабатывать события создания объектов всех этих типов (RootElement, ChildElementType ,...).

Эти обработчики должны быть чем-то внешним, поэтому я не хочу размещать их внутри стандартных конструкторов моих объектов.

Теги:
jaxb

1 ответ

1
Лучший ответ

Да, возможно, используя интерфейс Listener:

            um.setListener(new Unmarshaller.Listener() {
                @Override
                public void afterUnmarshal(Object target, Object parent) {
                    // handle what you want
                }
            });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню