Event Listening

By implementing the EventListener interface dozer allows you to listen to 4 different events:

  • mappingStarted

  • mappingFinished

  • preWritingDestinationValue

  • postWritingDestinationValue

An Event object is passed into these callback methods which stores information about the ClassMap, FieldMap, source object, destination object, and destination value. This will allow you to extend Dozer and manipulate mapped objects at run-time. The interface is shown below:

public interface EventListener {

    publicvoid onMappingStarted(Event event);

    public void onPreWritingDestinationValue(Event event);

    public void onPostWritingDestinationValue(Event event);

    public void onMappingFinished(Event event);
}

The listeners that you create can be injected into the Mapper using an IOC like Spring or set directly during Mapper instance configuration using DozerBeanMapperBuilder#withEventListener(..) method. Below is an example using Spring to inject an event listener:

<?xml version="1.0" encoding="UTF-8"?>
<beans default-lazy-init="false">
    <bean id="EventMapper" class="com.github.dozermapper.core.DozerBeanMapper">
        <property name="mappingFiles">
            <list>
                <value>dozerBeanMapping.xml</value>
            </list>
        </property>
        <property name="eventListeners">
            <list>
                <ref bean="eventTestListener" />
            </list>
        </property>
    </bean>
    <bean id="eventTestListener" class="com.github.dozermapper.core.event.EventTestListener" />
</beans>

results matching ""

    No results matching ""