Example usage for org.hibernate.event.spi EventType resolveEventTypeByName

List of usage examples for org.hibernate.event.spi EventType resolveEventTypeByName

Introduction

In this page you can find the example usage for org.hibernate.event.spi EventType resolveEventTypeByName.

Prototype

public static EventType resolveEventTypeByName(final String eventName) 

Source Link

Document

Find an EventType by its name

Usage

From source file:org.codehaus.groovy.grails.orm.hibernate.EventListenerIntegrator.java

License:Apache License

@SuppressWarnings({ "unchecked", "rawtypes" })
public void integrate(Configuration config, SessionFactoryImplementor sessionFactory,
        SessionFactoryServiceRegistry serviceRegistry) {

    EventListenerRegistry listenerRegistry = serviceRegistry.getService(EventListenerRegistry.class);

    if (eventListeners != null) {
        for (Map.Entry<String, Object> entry : eventListeners.entrySet()) {
            EventType type = EventType.resolveEventTypeByName(entry.getKey());
            Object listenerObject = entry.getValue();
            if (listenerObject instanceof Collection) {
                appendListeners(listenerRegistry, type, (Collection) listenerObject);
            } else if (listenerObject != null) {
                appendListeners(listenerRegistry, type, Collections.singleton(listenerObject));
            }/*from w w w  .  j  ava2 s . c o m*/
        }
    }

    if (hibernateEventListeners != null && hibernateEventListeners.getListenerMap() != null) {
        Map<String, Object> listenerMap = hibernateEventListeners.getListenerMap();
        for (EventType<?> type : TYPES) {
            appendListeners(listenerRegistry, type, listenerMap);
        }
    }

    // register workaround for GRAILS-8988 (do nullability checks for inserts in last PreInsertEventListener)
    ClosureEventTriggeringInterceptor.addNullabilityCheckerPreInsertEventListener(listenerRegistry);
}

From source file:org.dspace.app.cris.util.HibernateEventRegistry.java

public void init() {

    EventListenerRegistry eventListenerRegistry = ((SessionFactoryImpl) sessionFactory).getServiceRegistry()
            .getService(EventListenerRegistry.class);

    // If you wish to have custom determination and handling of "duplicate"
    // listeners, you would have to add an
    // implementation of the
    // org.hibernate.event.service.spi.DuplicationStrategy contract like
    // this/*w  w  w  .  j a va 2 s. c  o  m*/
    // eventListenerRegistry.addDuplicationStrategy( myDuplicationStrategy
    // );
    // EventListenerRegistry defines 3 ways to register listeners:
    // 1) This form overrides any existing registrations with
    // eventListenerRegistry.setListeners( EventType.AUTO_FLUSH,
    // myCompleteSetOfListeners );
    // 2) This form adds the specified listener(s) to the beginning of the
    // listener chain
    // eventListenerRegistry.prependListeners( EventType.AUTO_FLUSH,
    // myListenersToBeCalledFirst );
    // 3) This form adds the specified listener(s) to the end of the
    // listener chain
    // eventListenerRegistry.appendListeners( EventType.AUTO_FLUSH,
    // myListenersToBeCalledLast );

    for (String eTypeStr : eventListeners.keySet()) {
        EventType eType = EventType.resolveEventTypeByName(eTypeStr);
        for (Object listener : eventListeners.get(eTypeStr)) {
            eventListenerRegistry.setListeners(eType, listener);
        }
    }

}

From source file:org.grails.orm.hibernate.EventListenerIntegrator.java

License:Apache License

@SuppressWarnings({ "unchecked", "rawtypes" })
@Override//from   w  w w  . j  ava  2 s. c o  m
public void integrate(Metadata metadata, SessionFactoryImplementor sessionFactory,
        SessionFactoryServiceRegistry serviceRegistry) {

    EventListenerRegistry listenerRegistry = serviceRegistry.getService(EventListenerRegistry.class);

    if (eventListeners != null) {
        for (Map.Entry<String, Object> entry : eventListeners.entrySet()) {
            EventType type = EventType.resolveEventTypeByName(entry.getKey());
            Object listenerObject = entry.getValue();
            if (listenerObject instanceof Collection) {
                appendListeners(listenerRegistry, type, (Collection) listenerObject);
            } else if (listenerObject != null) {
                appendListeners(listenerRegistry, type, Collections.singleton(listenerObject));
            }
        }
    }

    if (hibernateEventListeners != null && hibernateEventListeners.getListenerMap() != null) {
        Map<String, Object> listenerMap = hibernateEventListeners.getListenerMap();
        for (EventType<?> type : TYPES) {
            appendListeners(listenerRegistry, type, listenerMap);
        }
    }

}