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.PostDeleteEvent event)
           
 void onPostInsert(org.hibernate.event.PostInsertEvent event)
           
 void onPostLoad(org.hibernate.event.PostLoadEvent event)
           
 void onPostUpdate(org.hibernate.event.PostUpdateEvent event)
           
 boolean onPreDelete(org.hibernate.event.PreDeleteEvent event)
           
 boolean onPreInsert(org.hibernate.event.PreInsertEvent event)
           
 void onPreLoad(org.hibernate.event.PreLoadEvent event)
           
 boolean onPreUpdate(org.hibernate.event.PreUpdateEvent event)
           
 void onSaveOrUpdate(org.hibernate.event.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.SaveOrUpdateEvent event)
                    throws org.hibernate.HibernateException
Throws:
org.hibernate.HibernateException

onPreLoad

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

onPostLoad

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

onPostInsert

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

onPreInsert

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

onPreUpdate

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

onPostUpdate

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

onPreDelete

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

onPostDelete

public void onPostDelete(org.hibernate.event.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