svn commit: r586468 - in /ofbiz/trunk/framework/service/src/org/ofbiz/service: ServiceDispatcher.java engine/AbstractEngine.java engine/GenericAsyncEngine.java engine/GenericEngine.java engine/InterfaceEngine.java engine/RouteEngine.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r586468 - in /ofbiz/trunk/framework/service/src/org/ofbiz/service: ServiceDispatcher.java engine/AbstractEngine.java engine/GenericAsyncEngine.java engine/GenericEngine.java engine/InterfaceEngine.java engine/RouteEngine.java

doogie-3
Author: doogie
Date: Fri Oct 19 07:18:53 2007
New Revision: 586468

URL: http://svn.apache.org/viewvc?rev=586468&view=rev
Log:
Don't use a single sendCallbacks method, with different value
arguments; it's not type-safe.  Instead, use 3 variants.

Modified:
    ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceDispatcher.java
    ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/AbstractEngine.java
    ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/GenericAsyncEngine.java
    ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/GenericEngine.java
    ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/InterfaceEngine.java
    ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/RouteEngine.java

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceDispatcher.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceDispatcher.java?rev=586468&r1=586467&r2=586468&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceDispatcher.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceDispatcher.java Fri Oct 19 07:18:53 2007
@@ -674,7 +674,7 @@
                     } else {
                         engine.runAsync(localName, service, context, persist);
                     }
-                    engine.sendCallbacks(service, context, null, GenericEngine.ASYNC_MODE);
+                    engine.sendCallbacks(service, context, GenericEngine.ASYNC_MODE);
                 }
 
                 if (Debug.timingOn()) {

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/AbstractEngine.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/AbstractEngine.java?rev=586468&r1=586467&r2=586468&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/AbstractEngine.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/AbstractEngine.java Fri Oct 19 07:18:53 2007
@@ -88,26 +88,55 @@
     /**
      * @see org.ofbiz.service.engine.GenericEngine#sendCallbacks(org.ofbiz.service.ModelService, java.util.Map, java.lang.Object, int)
      */
-    public void sendCallbacks(ModelService model, Map context, Object cbObj, int mode) throws GenericServiceException {
+    public void sendCallbacks(ModelService model, Map context, int mode) throws GenericServiceException {
+        if (!allowCallbacks(model, context, mode)) return;
         List callbacks = dispatcher.getCallbacks(model.name);
         if (callbacks != null) {
             Iterator i = callbacks.iterator();
             while (i.hasNext()) {
                 GenericServiceCallback gsc = (GenericServiceCallback) i.next();
                 if (gsc.isEnabled()) {
-                    if (cbObj == null) {
-                        gsc.receiveEvent(context);
-                    } else if (cbObj instanceof Throwable) {
-                        gsc.receiveEvent(context, (Throwable) cbObj);
-                    } else if (cbObj instanceof Map) {
-                        gsc.receiveEvent(context, (Map) cbObj);
-                    } else {
-                        throw new GenericServiceException("Callback object is not Throwable or Map");
-                    }
+                    gsc.receiveEvent(context);
                 } else {
                     i.remove();
                 }
             }
         }
+    }
+
+    public void sendCallbacks(ModelService model, Map context, Throwable t, int mode) throws GenericServiceException {
+        if (!allowCallbacks(model, context, mode)) return;
+        List callbacks = dispatcher.getCallbacks(model.name);
+        if (callbacks != null) {
+            Iterator i = callbacks.iterator();
+            while (i.hasNext()) {
+                GenericServiceCallback gsc = (GenericServiceCallback) i.next();
+                if (gsc.isEnabled()) {
+                    gsc.receiveEvent(context,t );
+                } else {
+                    i.remove();
+                }
+            }
+        }
+    }
+
+    public void sendCallbacks(ModelService model, Map context, Map result, int mode) throws GenericServiceException {
+        if (!allowCallbacks(model, context, mode)) return;
+        List callbacks = dispatcher.getCallbacks(model.name);
+        if (callbacks != null) {
+            Iterator i = callbacks.iterator();
+            while (i.hasNext()) {
+                GenericServiceCallback gsc = (GenericServiceCallback) i.next();
+                if (gsc.isEnabled()) {
+                    gsc.receiveEvent(context, result);
+                } else {
+                    i.remove();
+                }
+            }
+        }
+    }
+
+    protected boolean allowCallbacks(ModelService model, Map<String, Object> context, int mode) throws GenericServiceException {
+        return true;
     }
 }

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/GenericAsyncEngine.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/GenericAsyncEngine.java?rev=586468&r1=586467&r2=586468&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/GenericAsyncEngine.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/GenericAsyncEngine.java Fri Oct 19 07:18:53 2007
@@ -154,12 +154,7 @@
         }
     }
 
-    /**
-     * @see org.ofbiz.service.engine.GenericEngine#sendCallbacks(org.ofbiz.service.ModelService, java.util.Map, java.lang.Object, int)
-     */
-    public void sendCallbacks(ModelService model, Map context, Object cbObj, int mode) throws GenericServiceException {
-        if (mode == GenericEngine.SYNC_MODE) {
-            super.sendCallbacks(model, context, cbObj, mode);
-        }
+    protected boolean allowCallbacks(ModelService model, Map context, int mode) throws GenericServiceException {
+        return mode == GenericEngine.SYNC_MODE;
     }
 }

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/GenericEngine.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/GenericEngine.java?rev=586468&r1=586467&r2=586468&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/GenericEngine.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/GenericEngine.java Fri Oct 19 07:18:53 2007
@@ -85,6 +85,8 @@
      * @param mode Service mode (sync or async)
      * @throws GenericServiceException
      */
-    public void sendCallbacks(ModelService modelService, Map context, Object cbObj, int mode) throws GenericServiceException;
+    public void sendCallbacks(ModelService modelService, Map context, int mode) throws GenericServiceException;
+    public void sendCallbacks(ModelService modelService, Map context, Map result, int mode) throws GenericServiceException;
+    public void sendCallbacks(ModelService modelService, Map context, Throwable t, int mode) throws GenericServiceException;
 }
 

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/InterfaceEngine.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/InterfaceEngine.java?rev=586468&r1=586467&r2=586468&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/InterfaceEngine.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/InterfaceEngine.java Fri Oct 19 07:18:53 2007
@@ -60,9 +60,12 @@
         throw new GenericServiceException("Interface services cannot be invoked; try invoking an implementing service.");
     }
 
-    /**
-     * @see org.ofbiz.service.engine.GenericEngine#sendCallbacks(org.ofbiz.service.ModelService, java.util.Map, java.lang.Object, int)
-     */
-    public void sendCallbacks(ModelService modelService, Map context, Object cbObj, int mode) throws GenericServiceException {
+    public void sendCallbacks(ModelService modelService, Map context, int mode) throws GenericServiceException {
+    }
+
+    public void sendCallbacks(ModelService modelService, Map context, Map result, int mode) throws GenericServiceException {
+    }
+
+    public void sendCallbacks(ModelService modelService, Map context, Throwable t, int mode) throws GenericServiceException {
     }
 }

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/RouteEngine.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/RouteEngine.java?rev=586468&r1=586467&r2=586468&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/RouteEngine.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/RouteEngine.java Fri Oct 19 07:18:53 2007
@@ -62,9 +62,12 @@
         return;
     }
 
-    /**
-     * @see org.ofbiz.service.engine.GenericEngine#sendCallbacks(org.ofbiz.service.ModelService, java.util.Map, java.lang.Object, int)
-     */
-    public void sendCallbacks(ModelService modelService, Map context, Object cbObj, int mode) throws GenericServiceException {
+    public void sendCallbacks(ModelService modelService, Map context, int mode) throws GenericServiceException {
+    }
+
+    public void sendCallbacks(ModelService modelService, Map context, Map result, int mode) throws GenericServiceException {
+    }
+
+    public void sendCallbacks(ModelService modelService, Map context, Throwable t, int mode) throws GenericServiceException {
     }
 }