[jboss-svn-commits] JBL Code SVN: r19581 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools: spi and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Apr 15 18:44:06 EDT 2008


Author: KrisVerlaenen
Date: 2008-04-15 18:44:05 -0400 (Tue, 15 Apr 2008)
New Revision: 19581

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Action.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/ActionNodeInstance.java
Log:
JBRULES-1561: Code completion for ruleflow action editor
 - Added code completion to action dialog
JBRULES-1402: Inserting facts within "Action Node" (IDE RULEFLOW EDITOR)
 - support for drools.* and update/insert/... methods (for both Java and MVEL

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java	2008-04-15 22:44:00 UTC (rev 19580)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java	2008-04-15 22:44:05 UTC (rev 19581)
@@ -1,19 +1,20 @@
 package org.drools.base.mvel;
 
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Serializable;
+
 import org.drools.WorkingMemory;
 import org.drools.rule.MVELDialectData;
 import org.drools.rule.Package;
 import org.drools.spi.Action;
+import org.drools.spi.KnowledgeHelper;
 import org.mvel.MVEL;
 import org.mvel.compiler.CompiledExpression;
 import org.mvel.debug.DebugTools;
 
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.io.Serializable;
-
 public class MVELAction
     implements
     Action,
@@ -46,13 +47,13 @@
         return "mvel";
     }
 
-    public void execute(final WorkingMemory workingMemory) throws Exception {
+    public void execute(final KnowledgeHelper knowledgeHelper, final WorkingMemory workingMemory) throws Exception {
         // must clone to avoid concurrency problems
         DroolsMVELFactory factory = (DroolsMVELFactory) this.prototype.clone();
 
         factory.setContext( null,
+                            knowledgeHelper,
                             null,
-                            null,
                             workingMemory,
                             null );
         

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Action.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Action.java	2008-04-15 22:44:00 UTC (rev 19580)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Action.java	2008-04-15 22:44:05 UTC (rev 19581)
@@ -4,5 +4,5 @@
 
 public interface Action {
     
-    public void execute(final WorkingMemory workingMemory) throws Exception ;
+    public void execute(final KnowledgeHelper knowledgeHelper, final WorkingMemory workingMemory) throws Exception ;
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/ActionNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/ActionNodeInstance.java	2008-04-15 22:44:00 UTC (rev 19580)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/ActionNodeInstance.java	2008-04-15 22:44:05 UTC (rev 19581)
@@ -16,7 +16,12 @@
  * limitations under the License.
  */
 
+import org.drools.WorkingMemory;
+import org.drools.base.DefaultKnowledgeHelper;
+import org.drools.base.SequentialKnowledgeHelper;
+import org.drools.common.InternalRuleBase;
 import org.drools.spi.Action;
+import org.drools.spi.KnowledgeHelper;
 import org.drools.workflow.core.Node;
 import org.drools.workflow.core.node.ActionNode;
 import org.drools.workflow.instance.NodeInstance;
@@ -42,7 +47,9 @@
         }
 		Action action = (Action) getActionNode().getAction();
 		try {
-	        action.execute( getProcessInstance().getWorkingMemory() );		    
+		    KnowledgeHelper knowledgeHelper = createKnowledgeHelper();
+		    
+	        action.execute( knowledgeHelper, getProcessInstance().getWorkingMemory() );		    
 		} catch (Exception e) {
 		    throw new RuntimeException("unable to execute Action", e);
 		}
@@ -53,5 +60,14 @@
         getNodeInstanceContainer().removeNodeInstance(this);
         getNodeInstanceContainer().getNodeInstance(getActionNode().getTo().getTo()).trigger(this, getActionNode().getTo().getToType());
     }
+    
+    private KnowledgeHelper createKnowledgeHelper() {
+        WorkingMemory workingMemory = getProcessInstance().getWorkingMemory();
+        if ( ((InternalRuleBase) workingMemory.getRuleBase()).getConfiguration().isSequential() ) {
+            return new SequentialKnowledgeHelper( workingMemory );
+        } else {
+            return new DefaultKnowledgeHelper( workingMemory );
+        }
+    }
 
 }
\ No newline at end of file




More information about the jboss-svn-commits mailing list