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 { } } |
Free forum by Nabble | Edit this page |