Implemented a listener/observable that fires after any database access. Possibly...
authorn.hoffmann <n.hoffmann@localhost>
Wed, 1 Apr 2009 09:41:06 +0000 (09:41 +0000)
committern.hoffmann <n.hoffmann@localhost>
Wed, 1 Apr 2009 09:41:06 +0000 (09:41 +0000)
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/CdmCrudEvent.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/CdmPostCrudObservableListener.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/ICdmPostCrudObserver.java

index d91b2c87a6a83f266dd1ebe72df67be36edf448b..6e82d697acf51bb34219241f49dfc4fbd16c3bb5 100644 (file)
@@ -132,7 +132,7 @@ public class CdmCrudEvent extends AbstractEvent{
                                                                                                                                null,
                                                                                                                                updateEvent.getPersister(), 
                                                                                                                                updateEvent.getSession(), 
-                                                                                                                               EventType.INSERT
+                                                                                                                               EventType.LOAD
                                                                                                                                );
                        }
                        if(event instanceof PostUpdateEvent){
@@ -144,7 +144,7 @@ public class CdmCrudEvent extends AbstractEvent{
                                                                                                                                updateEvent.getOldState(),
                                                                                                                                updateEvent.getPersister(), 
                                                                                                                                updateEvent.getSession(), 
-                                                                                                                               EventType.INSERT
+                                                                                                                               EventType.UPDATE
                                                                                                                                );
                        }
                        if(event instanceof PostDeleteEvent){
@@ -156,7 +156,7 @@ public class CdmCrudEvent extends AbstractEvent{
                                                                                                                                null,
                                                                                                                                deleteEvent.getPersister(), 
                                                                                                                                deleteEvent.getSession(), 
-                                                                                                                               EventType.INSERT
+                                                                                                                               EventType.DELETE
                                                                                                                                );
                        }       
                }catch(ClassCastException e){
index cef83b0e382b3a376dabbe277f79b1e20c128388..6eaf6d73fd6ad99de09ed3e4b24897dfe643f101 100644 (file)
@@ -67,7 +67,7 @@ public class CdmPostCrudObservableListener implements PostDeleteEventListener, P
         * 
         * @param observer
         */
-       public static void register(ICdmPostCrudObserver observer){
+       public void register(ICdmPostCrudObserver observer){
                getDefault().observers.add(observer);
        }
        
@@ -76,9 +76,9 @@ public class CdmPostCrudObservableListener implements PostDeleteEventListener, P
         * 
         * @param event
         */
-       private void mediate(CdmCrudEvent event){
+       private void notifyObservers(CdmCrudEvent event){
                for( ICdmPostCrudObserver observer : observers){
-                       // update the ICdmPostCrudObserver implementor
+                       // call update() on the ICdmPostCrudObserver implementor
                        observer.update(event);
                }
        }
@@ -87,9 +87,9 @@ public class CdmPostCrudObservableListener implements PostDeleteEventListener, P
         * @see org.hibernate.event.PostInsertEventListener#onPostInsert(org.hibernate.event.PostInsertEvent)
         */
        public void onPostInsert(PostInsertEvent event) {
-               logger.trace("post insert fired");      
+               logger.trace("post insert fired: " + event.getEntity());        
                if(event.getEntity() instanceof CdmBase){
-                       getDefault().mediate(CdmCrudEvent.NewInstance(event));
+                       getDefault().notifyObservers(CdmCrudEvent.NewInstance(event));
                }
        }
        
@@ -97,9 +97,9 @@ public class CdmPostCrudObservableListener implements PostDeleteEventListener, P
         * @see org.hibernate.event.PostLoadEventListener#onPostLoad(org.hibernate.event.PostLoadEvent)
         */
        public void onPostLoad(PostLoadEvent event) {
-               logger.trace("post load fired");
+               logger.trace("post load fired: " + event.getEntity());
                if(event.getEntity() instanceof CdmBase){
-                       getDefault().mediate(CdmCrudEvent.NewInstance(event));
+                       getDefault().notifyObservers(CdmCrudEvent.NewInstance(event));
                }
        }
 
@@ -107,9 +107,9 @@ public class CdmPostCrudObservableListener implements PostDeleteEventListener, P
         * @see org.hibernate.event.PostUpdateEventListener#onPostUpdate(org.hibernate.event.PostUpdateEvent)
         */
        public void onPostUpdate(PostUpdateEvent event) {
-               logger.trace("post update fired");
+               logger.trace("post update fired: " + event.getEntity());
                if(event.getEntity() instanceof CdmBase){
-                       getDefault().mediate(CdmCrudEvent.NewInstance(event));
+                       getDefault().notifyObservers(CdmCrudEvent.NewInstance(event));
                }
        }
 
@@ -117,9 +117,9 @@ public class CdmPostCrudObservableListener implements PostDeleteEventListener, P
         * @see org.hibernate.event.PostDeleteEventListener#onPostDelete(org.hibernate.event.PostDeleteEvent)
         */
        public void onPostDelete(PostDeleteEvent event) {
-               logger.trace("post delete fired");
+               logger.trace("post delete fired: " + event.getEntity());
                if(event.getEntity() instanceof CdmBase){
-                       getDefault().mediate(CdmCrudEvent.NewInstance(event));
+                       getDefault().notifyObservers(CdmCrudEvent.NewInstance(event));
                }
        }
        
index cfcec7a2d268a20a6521460514e9b299b4bb965f..a1cbd650a91b3d5841615f70d96fc68451efe8b2 100644 (file)
@@ -10,6 +10,8 @@
 
 package eu.etaxonomy.cdm.persistence.hibernate;
 
+import java.util.Observer;
+
 
 /**
  * Objects implementing this will be updated when the CdmPostCrudListener fires