org.codehaus.groovy.grails.orm.hibernate
Class EventTriggeringInterceptor

java.lang.Object
  extended by org.grails.datastore.mapping.engine.event.AbstractPersistenceEventListener
      extended by org.codehaus.groovy.grails.orm.hibernate.AbstractEventTriggeringInterceptor
          extended by org.codehaus.groovy.grails.orm.hibernate.EventTriggeringInterceptor
All Implemented Interfaces:
java.util.EventListener, org.grails.datastore.mapping.engine.event.PersistenceEventListener, org.springframework.context.ApplicationListener<org.springframework.context.ApplicationEvent>, org.springframework.context.event.SmartApplicationListener, org.springframework.core.Ordered

public class EventTriggeringInterceptor
extends org.codehaus.groovy.grails.orm.hibernate.AbstractEventTriggeringInterceptor

Invokes closure events on domain entities such as beforeInsert, beforeUpdate and beforeDelete.

Since:
2.0

Field Summary
protected  GrailsDomainBinder domainBinder
           
protected  java.util.concurrent.ConcurrentMap<org.codehaus.groovy.grails.orm.hibernate.support.SoftKey<java.lang.Class<?>>,ClosureEventListener> eventListeners
           
 
Fields inherited from class org.codehaus.groovy.grails.orm.hibernate.AbstractEventTriggeringInterceptor
cachedShouldTrigger, failOnError, failOnErrorPackages, log
 
Fields inherited from class org.grails.datastore.mapping.engine.event.AbstractPersistenceEventListener
datastore
 
Fields inherited from interface org.grails.datastore.mapping.engine.event.PersistenceEventListener
DEFAULT_ORDER
 
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
 
Constructor Summary
EventTriggeringInterceptor(HibernateDatastore datastore, groovy.util.ConfigObject co)
           
 
Method Summary
protected  ClosureEventListener findEventListener(java.lang.Object entity)
           
protected  java.util.List<java.lang.String> getDatasourceNames(org.codehaus.groovy.grails.commons.GrailsDomainClass dc)
           
protected  void onPersistenceEvent(org.grails.datastore.mapping.engine.event.AbstractPersistenceEvent event)
           
 void onPostDelete(org.hibernate.event.spi.PostDeleteEvent event)
           
 void onPostInsert(org.hibernate.event.spi.PostInsertEvent event)
           
 void onPostLoad(org.hibernate.event.spi.PostLoadEvent event)
           
 void onPostUpdate(org.hibernate.event.spi.PostUpdateEvent event)
           
 boolean onPreDelete(org.hibernate.event.spi.PreDeleteEvent event)
           
 boolean onPreInsert(org.hibernate.event.spi.PreInsertEvent event)
           
 void onPreLoad(org.hibernate.event.spi.PreLoadEvent event)
           
 boolean onPreUpdate(org.hibernate.event.spi.PreUpdateEvent event)
           
 void onSaveOrUpdate(org.hibernate.event.spi.SaveOrUpdateEvent event)
           
 void onValidate(org.grails.datastore.mapping.engine.event.ValidationEvent event)
           
 boolean supportsEventType(java.lang.Class<? extends org.springframework.context.ApplicationEvent> eventType)
          
 
Methods inherited from class org.codehaus.groovy.grails.orm.hibernate.AbstractEventTriggeringInterceptor
isDefinedByCurrentDataStore
 
Methods inherited from class org.grails.datastore.mapping.engine.event.AbstractPersistenceEventListener
getOrder, onApplicationEvent, supportsSourceType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

eventListeners

protected transient java.util.concurrent.ConcurrentMap<org.codehaus.groovy.grails.orm.hibernate.support.SoftKey<java.lang.Class<?>>,ClosureEventListener> eventListeners

domainBinder

protected final GrailsDomainBinder domainBinder
Constructor Detail

EventTriggeringInterceptor

public EventTriggeringInterceptor(HibernateDatastore datastore,
                                  groovy.util.ConfigObject co)
Method Detail

onPersistenceEvent

protected void onPersistenceEvent(org.grails.datastore.mapping.engine.event.AbstractPersistenceEvent event)
Specified by:
onPersistenceEvent in class org.grails.datastore.mapping.engine.event.AbstractPersistenceEventListener

onSaveOrUpdate

public void onSaveOrUpdate(org.hibernate.event.spi.SaveOrUpdateEvent event)
                    throws org.hibernate.HibernateException
Throws:
org.hibernate.HibernateException

onPreLoad

public void onPreLoad(org.hibernate.event.spi.PreLoadEvent event)

onPostLoad

public void onPostLoad(org.hibernate.event.spi.PostLoadEvent event)

onPostInsert

public void onPostInsert(org.hibernate.event.spi.PostInsertEvent event)

onPreInsert

public boolean onPreInsert(org.hibernate.event.spi.PreInsertEvent event)

onPreUpdate

public boolean onPreUpdate(org.hibernate.event.spi.PreUpdateEvent event)

onPostUpdate

public void onPostUpdate(org.hibernate.event.spi.PostUpdateEvent event)

onPreDelete

public boolean onPreDelete(org.hibernate.event.spi.PreDeleteEvent event)

onPostDelete

public void onPostDelete(org.hibernate.event.spi.PostDeleteEvent event)

onValidate

public void onValidate(org.grails.datastore.mapping.engine.event.ValidationEvent event)

findEventListener

protected ClosureEventListener findEventListener(java.lang.Object entity)

supportsEventType

public boolean supportsEventType(java.lang.Class<? extends org.springframework.context.ApplicationEvent> eventType)

Specified by:
supportsEventType in interface org.springframework.context.event.SmartApplicationListener
Overrides:
supportsEventType in class org.codehaus.groovy.grails.orm.hibernate.AbstractEventTriggeringInterceptor
See Also:
SmartApplicationListener.supportsEventType(java.lang.Class)

getDatasourceNames

protected java.util.List<java.lang.String> getDatasourceNames(org.codehaus.groovy.grails.commons.GrailsDomainClass dc)
Specified by:
getDatasourceNames in class org.codehaus.groovy.grails.orm.hibernate.AbstractEventTriggeringInterceptor