org.codehaus.groovy.grails.orm.hibernate.support
Class ClosureEventTriggeringInterceptor

java.lang.Object
  extended by org.hibernate.event.def.AbstractReassociateEventListener
      extended by org.hibernate.event.def.AbstractSaveEventListener
          extended by org.hibernate.event.def.DefaultSaveOrUpdateEventListener
              extended by org.codehaus.groovy.grails.orm.hibernate.events.SaveOrUpdateEventListener
                  extended by org.codehaus.groovy.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor
All Implemented Interfaces:
java.io.Serializable, org.hibernate.event.PostDeleteEventListener, org.hibernate.event.PostInsertEventListener, org.hibernate.event.PostLoadEventListener, org.hibernate.event.PostUpdateEventListener, org.hibernate.event.PreDeleteEventListener, org.hibernate.event.PreInsertEventListener, org.hibernate.event.PreLoadEventListener, org.hibernate.event.PreUpdateEventListener, org.hibernate.event.SaveOrUpdateEventListener, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

public class ClosureEventTriggeringInterceptor
extends SaveOrUpdateEventListener
implements org.springframework.context.ApplicationContextAware, org.hibernate.event.PreLoadEventListener, org.hibernate.event.PostLoadEventListener, org.hibernate.event.PostInsertEventListener, org.hibernate.event.PostUpdateEventListener, org.hibernate.event.PostDeleteEventListener, org.hibernate.event.PreDeleteEventListener, org.hibernate.event.PreUpdateEventListener, org.hibernate.event.PreInsertEventListener

Listens for Hibernate events and publishes corresponding Datastore events.

Since:
1.0
See Also:
Serialized Form

Field Summary
static java.lang.String AFTER_DELETE_EVENT
           
static java.lang.String AFTER_INSERT_EVENT
           
static java.lang.String AFTER_LOAD_EVENT
           
static java.lang.String AFTER_UPDATE_EVENT
           
static java.lang.String BEFORE_DELETE_EVENT
           
static java.lang.String BEFORE_INSERT_EVENT
           
static java.lang.String BEFORE_LOAD_EVENT
           
static java.lang.String BEFORE_UPDATE_EVENT
           
static java.util.Collection<java.lang.String> IGNORED
           
static java.lang.String ONLOAD_EVENT
           
static java.lang.String ONLOAD_SAVE
           
 
Fields inherited from class org.hibernate.event.def.AbstractSaveEventListener
DELETED, DETACHED, PERSISTENT, TRANSIENT
 
Constructor Summary
ClosureEventTriggeringInterceptor()
           
 
Method Summary
 void onPostDelete(org.hibernate.event.PostDeleteEvent hibernateEvent)
           
 void onPostInsert(org.hibernate.event.PostInsertEvent hibernateEvent)
           
 void onPostLoad(org.hibernate.event.PostLoadEvent hibernateEvent)
           
 void onPostUpdate(org.hibernate.event.PostUpdateEvent hibernateEvent)
           
 boolean onPreDelete(org.hibernate.event.PreDeleteEvent hibernateEvent)
           
 boolean onPreInsert(org.hibernate.event.PreInsertEvent hibernateEvent)
           
 void onPreLoad(org.hibernate.event.PreLoadEvent hibernateEvent)
           
 boolean onPreUpdate(org.hibernate.event.PreUpdateEvent hibernateEvent)
           
 void onSaveOrUpdate(org.hibernate.event.SaveOrUpdateEvent hibernateEvent)
           
protected  java.io.Serializable performSaveOrReplicate(java.lang.Object entity, org.hibernate.engine.EntityKey key, org.hibernate.persister.entity.EntityPersister persister, boolean useIdentityColumn, java.lang.Object anything, org.hibernate.event.EventSource source, boolean requiresImmediateIdAccess)
           
 void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
           
 void setDatastores(java.util.Map<org.hibernate.SessionFactory,HibernateDatastore> datastores)
           
 
Methods inherited from class org.hibernate.event.def.DefaultSaveOrUpdateEventListener
entityIsDetached, entityIsPersistent, entityIsTransient, getCascadeAction, getUpdateId, invokeUpdateLifecycle, performSaveOrUpdate, performUpdate, reassociateIfUninitializedProxy, saveWithGeneratedOrRequestedId
 
Methods inherited from class org.hibernate.event.def.AbstractSaveEventListener
cascadeAfterSave, cascadeBeforeSave, getAssumedUnsaved, getEntityState, getLoggableName, getMergeMap, invokeSaveLifecycle, isVersionIncrementDisabled, performSave, saveWithGeneratedId, saveWithRequestedId, substituteValuesIfNecessary, validate, visitCollectionsBeforeSave
 
Methods inherited from class org.hibernate.event.def.AbstractReassociateEventListener
reassociate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

IGNORED

public static final java.util.Collection<java.lang.String> IGNORED

ONLOAD_EVENT

public static final java.lang.String ONLOAD_EVENT
See Also:
Constant Field Values

ONLOAD_SAVE

public static final java.lang.String ONLOAD_SAVE
See Also:
Constant Field Values

BEFORE_LOAD_EVENT

public static final java.lang.String BEFORE_LOAD_EVENT
See Also:
Constant Field Values

BEFORE_INSERT_EVENT

public static final java.lang.String BEFORE_INSERT_EVENT
See Also:
Constant Field Values

AFTER_INSERT_EVENT

public static final java.lang.String AFTER_INSERT_EVENT
See Also:
Constant Field Values

BEFORE_UPDATE_EVENT

public static final java.lang.String BEFORE_UPDATE_EVENT
See Also:
Constant Field Values

AFTER_UPDATE_EVENT

public static final java.lang.String AFTER_UPDATE_EVENT
See Also:
Constant Field Values

BEFORE_DELETE_EVENT

public static final java.lang.String BEFORE_DELETE_EVENT
See Also:
Constant Field Values

AFTER_DELETE_EVENT

public static final java.lang.String AFTER_DELETE_EVENT
See Also:
Constant Field Values

AFTER_LOAD_EVENT

public static final java.lang.String AFTER_LOAD_EVENT
See Also:
Constant Field Values
Constructor Detail

ClosureEventTriggeringInterceptor

public ClosureEventTriggeringInterceptor()
Method Detail

setDatastores

public void setDatastores(java.util.Map<org.hibernate.SessionFactory,HibernateDatastore> datastores)

onSaveOrUpdate

public void onSaveOrUpdate(org.hibernate.event.SaveOrUpdateEvent hibernateEvent)
                    throws org.hibernate.HibernateException
Specified by:
onSaveOrUpdate in interface org.hibernate.event.SaveOrUpdateEventListener
Overrides:
onSaveOrUpdate in class org.hibernate.event.def.DefaultSaveOrUpdateEventListener
Throws:
org.hibernate.HibernateException

onPreLoad

public void onPreLoad(org.hibernate.event.PreLoadEvent hibernateEvent)
Specified by:
onPreLoad in interface org.hibernate.event.PreLoadEventListener

onPostLoad

public void onPostLoad(org.hibernate.event.PostLoadEvent hibernateEvent)
Specified by:
onPostLoad in interface org.hibernate.event.PostLoadEventListener

onPreInsert

public boolean onPreInsert(org.hibernate.event.PreInsertEvent hibernateEvent)
Specified by:
onPreInsert in interface org.hibernate.event.PreInsertEventListener

onPostInsert

public void onPostInsert(org.hibernate.event.PostInsertEvent hibernateEvent)
Specified by:
onPostInsert in interface org.hibernate.event.PostInsertEventListener

onPreUpdate

public boolean onPreUpdate(org.hibernate.event.PreUpdateEvent hibernateEvent)
Specified by:
onPreUpdate in interface org.hibernate.event.PreUpdateEventListener

onPostUpdate

public void onPostUpdate(org.hibernate.event.PostUpdateEvent hibernateEvent)
Specified by:
onPostUpdate in interface org.hibernate.event.PostUpdateEventListener

onPreDelete

public boolean onPreDelete(org.hibernate.event.PreDeleteEvent hibernateEvent)
Specified by:
onPreDelete in interface org.hibernate.event.PreDeleteEventListener

onPostDelete

public void onPostDelete(org.hibernate.event.PostDeleteEvent hibernateEvent)
Specified by:
onPostDelete in interface org.hibernate.event.PostDeleteEventListener

setApplicationContext

public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
Specified by:
setApplicationContext in interface org.springframework.context.ApplicationContextAware

performSaveOrReplicate

protected java.io.Serializable performSaveOrReplicate(java.lang.Object entity,
                                                      org.hibernate.engine.EntityKey key,
                                                      org.hibernate.persister.entity.EntityPersister persister,
                                                      boolean useIdentityColumn,
                                                      java.lang.Object anything,
                                                      org.hibernate.event.EventSource source,
                                                      boolean requiresImmediateIdAccess)
Overrides:
performSaveOrReplicate in class org.hibernate.event.def.AbstractSaveEventListener