[jboss-svn-commits] JBL Code SVN: r29175 - in labs/jbossrules/trunk: drools-core/src/main/java/org/drools/workflow/instance/node and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Sep 3 16:02:33 EDT 2009


Author: KrisVerlaenen
Date: 2009-09-03 16:02:33 -0400 (Thu, 03 Sep 2009)
New Revision: 29175

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/CompositeNodeHandler.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/CompositeContextNodeInstance.java
Log:
 - made composite nodes nestable in parser
 - made CompositeContextNodeInstance implement Contextable

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/CompositeNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/CompositeNodeHandler.java	2009-09-03 19:58:27 UTC (rev 29174)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/CompositeNodeHandler.java	2009-09-03 20:02:33 UTC (rev 29175)
@@ -28,6 +28,10 @@
         return CompositeNode.class;
     }
     
+    public boolean allowNesting() {
+    	return true;
+    }
+    
     protected String getNodeName() {
     	return "composite";
     }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/CompositeContextNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/CompositeContextNodeInstance.java	2009-09-03 19:58:27 UTC (rev 29174)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/CompositeContextNodeInstance.java	2009-09-03 20:02:33 UTC (rev 29175)
@@ -1,91 +1,92 @@
-package org.drools.workflow.instance.node;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.drools.common.InternalRuleBase;
-import org.drools.process.core.Context;
-import org.drools.process.core.ContextContainer;
-import org.drools.process.instance.ContextInstance;
-import org.drools.process.instance.ContextInstanceContainer;
-import org.drools.process.instance.ProcessInstance;
-import org.drools.process.instance.impl.ContextInstanceFactory;
-import org.drools.process.instance.impl.ContextInstanceFactoryRegistry;
-import org.drools.workflow.core.node.CompositeContextNode;
-
-public class CompositeContextNodeInstance extends CompositeNodeInstance implements ContextInstanceContainer {
-
-	private static final long serialVersionUID = 4L;
-	
-	private Map<String, ContextInstance> contextInstances = new HashMap<String, ContextInstance>();
-    private Map<String, List<ContextInstance>> subContextInstances = new HashMap<String, List<ContextInstance>>();
-
-    protected CompositeContextNode getCompositeContextNode() {
-        return (CompositeContextNode) getNode();
-    }
-    
-    public ContextContainer getContextContainer() {
-        return getCompositeContextNode();
-    }
-    
-    public void setContextInstance(String contextId, ContextInstance contextInstance) {
-        this.contextInstances.put(contextId, contextInstance);
-    }
-    
-    public ContextInstance getContextInstance(String contextId) {
-        ContextInstance contextInstance = this.contextInstances.get(contextId);
-        if (contextInstance != null) {
-            return contextInstance;
-        }
-        Context context = getCompositeContextNode().getDefaultContext(contextId);
-        if (context != null) {
-            contextInstance = getContextInstance(context);
-            return contextInstance;
-        }
-        return null;
-    }
-    
-    public List<ContextInstance> getContextInstances(String contextId) {
-        return this.subContextInstances.get(contextId);
-    }
-    
-    public void addContextInstance(String contextId, ContextInstance contextInstance) {
-        List<ContextInstance> list = this.subContextInstances.get(contextId);
-        if (list == null) {
-            list = new ArrayList<ContextInstance>();
-            this.subContextInstances.put(contextId, list);
-        }
-        list.add(contextInstance);
-    }
-
-    public ContextInstance getContextInstance(String contextId, long id) {
-        List<ContextInstance> contextInstances = subContextInstances.get(contextId);
-        if (contextInstances != null) {
-            for (ContextInstance contextInstance: contextInstances) {
-                if (contextInstance.getContextId() == id) {
-                    return contextInstance;
-                }
-            }
-        }
-        return null;
-    }
-
-    public ContextInstance getContextInstance(final Context context) {
-        ContextInstanceFactoryRegistry contextRegistry =
-            ((InternalRuleBase) ((ProcessInstance) getProcessInstance())
-        		.getWorkingMemory().getRuleBase())
-                .getConfiguration().getProcessContextInstanceFactoryRegistry();
-        ContextInstanceFactory conf = contextRegistry.getContextInstanceFactory(context);
-        if (conf == null) {
-            throw new IllegalArgumentException("Illegal context type (registry not found): " + context.getClass());
-        }
-        ContextInstance contextInstance = (ContextInstance) conf.getContextInstance(context, this, (ProcessInstance) getProcessInstance());
-        if (contextInstance == null) {
-            throw new IllegalArgumentException("Illegal context type (instance not found): " + context.getClass());
-        }
-        return contextInstance;
-    }
-
-}
+package org.drools.workflow.instance.node;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.common.InternalRuleBase;
+import org.drools.process.core.Context;
+import org.drools.process.core.ContextContainer;
+import org.drools.process.instance.ContextInstance;
+import org.drools.process.instance.ContextInstanceContainer;
+import org.drools.process.instance.ContextableInstance;
+import org.drools.process.instance.ProcessInstance;
+import org.drools.process.instance.impl.ContextInstanceFactory;
+import org.drools.process.instance.impl.ContextInstanceFactoryRegistry;
+import org.drools.workflow.core.node.CompositeContextNode;
+
+public class CompositeContextNodeInstance extends CompositeNodeInstance implements ContextInstanceContainer, ContextableInstance {
+
+	private static final long serialVersionUID = 4L;
+	
+	private Map<String, ContextInstance> contextInstances = new HashMap<String, ContextInstance>();
+    private Map<String, List<ContextInstance>> subContextInstances = new HashMap<String, List<ContextInstance>>();
+
+    protected CompositeContextNode getCompositeContextNode() {
+        return (CompositeContextNode) getNode();
+    }
+    
+    public ContextContainer getContextContainer() {
+        return getCompositeContextNode();
+    }
+    
+    public void setContextInstance(String contextId, ContextInstance contextInstance) {
+        this.contextInstances.put(contextId, contextInstance);
+    }
+    
+    public ContextInstance getContextInstance(String contextId) {
+        ContextInstance contextInstance = this.contextInstances.get(contextId);
+        if (contextInstance != null) {
+            return contextInstance;
+        }
+        Context context = getCompositeContextNode().getDefaultContext(contextId);
+        if (context != null) {
+            contextInstance = getContextInstance(context);
+            return contextInstance;
+        }
+        return null;
+    }
+    
+    public List<ContextInstance> getContextInstances(String contextId) {
+        return this.subContextInstances.get(contextId);
+    }
+    
+    public void addContextInstance(String contextId, ContextInstance contextInstance) {
+        List<ContextInstance> list = this.subContextInstances.get(contextId);
+        if (list == null) {
+            list = new ArrayList<ContextInstance>();
+            this.subContextInstances.put(contextId, list);
+        }
+        list.add(contextInstance);
+    }
+
+    public ContextInstance getContextInstance(String contextId, long id) {
+        List<ContextInstance> contextInstances = subContextInstances.get(contextId);
+        if (contextInstances != null) {
+            for (ContextInstance contextInstance: contextInstances) {
+                if (contextInstance.getContextId() == id) {
+                    return contextInstance;
+                }
+            }
+        }
+        return null;
+    }
+
+    public ContextInstance getContextInstance(final Context context) {
+        ContextInstanceFactoryRegistry contextRegistry =
+            ((InternalRuleBase) ((ProcessInstance) getProcessInstance())
+        		.getWorkingMemory().getRuleBase())
+                .getConfiguration().getProcessContextInstanceFactoryRegistry();
+        ContextInstanceFactory conf = contextRegistry.getContextInstanceFactory(context);
+        if (conf == null) {
+            throw new IllegalArgumentException("Illegal context type (registry not found): " + context.getClass());
+        }
+        ContextInstance contextInstance = (ContextInstance) conf.getContextInstance(context, this, (ProcessInstance) getProcessInstance());
+        if (contextInstance == null) {
+            throw new IllegalArgumentException("Illegal context type (instance not found): " + context.getClass());
+        }
+        return contextInstance;
+    }
+
+}



More information about the jboss-svn-commits mailing list