2014-08-27 5 views
1

Рассмотрим Sample XML документ, который немаршалинг в структуру объекта в java используя JAXB, например:регистрировать все события создания объекта в JAXB

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

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

Более конкретно, если моя структура что-то вроде этого:

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

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

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

ответ

1

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

  um.setListener(new Unmarshaller.Listener() { 
       @Override 
       public void afterUnmarshal(Object target, Object parent) { 
        // handle what you want 
       } 
      }); 
Смежные вопросы