[jboss-svn-commits] JBL Code SVN: r19580 - in labs/jbossrules/trunk/drools-compiler/src: main/java/org/drools/rule/builder and 5 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Apr 15 18:44:00 EDT 2008
Author: KrisVerlaenen
Date: 2008-04-15 18:44:00 -0400 (Tue, 15 Apr 2008)
New Revision: 19580
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/process/builder/ActionNodeBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/ActionBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaActionBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaInvokers.mvel
labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaRule.mvel
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaActionBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELDecisionBuilderTest.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-compiler/src/main/java/org/drools/process/builder/ActionNodeBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/process/builder/ActionNodeBuilder.java 2008-04-15 20:39:50 UTC (rev 19579)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/process/builder/ActionNodeBuilder.java 2008-04-15 22:44:00 UTC (rev 19580)
@@ -21,9 +21,7 @@
DroolsConsequenceAction action = (DroolsConsequenceAction) actionNode.getAction();
ActionDescr actionDescr = new ActionDescr();
actionDescr.setText( action.getConsequence() );
-
Dialect dialect = context.getDialectRegistry().getDialect( action.getDialect() );
-
dialect.getActionBuilder().build( context, actionNode, actionDescr );
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/ActionBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/ActionBuilder.java 2008-04-15 20:39:50 UTC (rev 19579)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/ActionBuilder.java 2008-04-15 22:44:00 UTC (rev 19580)
@@ -1,7 +1,6 @@
package org.drools.rule.builder;
import org.drools.lang.descr.ActionDescr;
-import org.drools.process.core.context.variable.VariableScope;
import org.drools.workflow.core.node.ActionNode;
public interface ActionBuilder {
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaActionBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaActionBuilder.java 2008-04-15 20:39:50 UTC (rev 19579)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaActionBuilder.java 2008-04-15 22:44:00 UTC (rev 19580)
@@ -75,7 +75,7 @@
(ProcessBuildContext) context,
(String[]) usedIdentifiers[1].toArray( new String[usedIdentifiers[1].size()] ) );
map.put( "text",
- actionDescr.getText() );
+ dialect.getKnowledgeHelperFixer().fix( actionDescr.getText() ));
generatTemplates( "actionMethod",
"actionInvoker",
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilder.java 2008-04-15 20:39:50 UTC (rev 19579)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilder.java 2008-04-15 22:44:00 UTC (rev 19580)
@@ -2,6 +2,8 @@
import java.io.Serializable;
import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Set;
import org.drools.base.mvel.DroolsMVELFactory;
@@ -13,11 +15,51 @@
import org.drools.rule.builder.ActionBuilder;
import org.drools.rule.builder.PackageBuildContext;
import org.drools.workflow.core.node.ActionNode;
+import org.mvel.Macro;
+import org.mvel.MacroProcessor;
public class MVELActionBuilder
implements
ActionBuilder {
+ private static final Map macros = new HashMap( 5 );
+ static {
+ macros.put( "insert",
+ new Macro() {
+ public String doMacro() {
+ return "drools.insert";
+ }
+ } );
+
+ macros.put( "insertLogical",
+ new Macro() {
+ public String doMacro() {
+ return "drools.insertLogical";
+ }
+ } );
+
+ macros.put( "modify",
+ new Macro() {
+ public String doMacro() {
+ return "@Modify with";
+ }
+ } );
+
+ macros.put( "update",
+ new Macro() {
+ public String doMacro() {
+ return "drools.update";
+ }
+ } );
+
+ macros.put( "retract",
+ new Macro() {
+ public String doMacro() {
+ return "drools.retract";
+ }
+ } );;
+ }
+
public MVELActionBuilder() {
}
@@ -26,7 +68,7 @@
final ActionNode actionNode,
final ActionDescr actionDescr) {
- String text = actionDescr.getText();
+ String text = processMacros( actionDescr.getText() );
try {
MVELDialect dialect = (MVELDialect) context.getDialect( "mvel" );
@@ -62,6 +104,12 @@
}
}
+ public static String processMacros(String consequence) {
+ MacroProcessor macroProcessor = new MacroProcessor();
+ macroProcessor.setMacros( macros );
+ return macroProcessor.parse( delimitExpressions( consequence ) );
+ }
+
/**
* Allows newlines to demarcate expressions, as per MVEL command line.
* If expression spans multiple lines (ie inside an unbalanced bracket) then
Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaInvokers.mvel
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaInvokers.mvel 2008-04-15 20:39:50 UTC (rev 19579)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaInvokers.mvel 2008-04-15 22:44:00 UTC (rev 19580)
@@ -392,12 +392,14 @@
{
private static final long serialVersionUID = 400L;
- public void execute(org.drools.WorkingMemory workingMemory) throws Exception {
+ public void execute(org.drools.spi.KnowledgeHelper knowledgeHelper,
+ org.drools.WorkingMemory workingMemory) throws Exception {
@foreach{type : globalTypes, identifier : globals} @{type} @{identifier} = ( @{type} ) workingMemory.getGlobal( "@{identifier}" );
@end{}
@{processClassName}.@{methodName} (
+ knowledgeHelper at if{globals != empty}, at end{}
@foreach{identifier : globals} @{identifier}
@end{","} );
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaRule.mvel
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaRule.mvel 2008-04-15 20:39:50 UTC (rev 19579)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaRule.mvel 2008-04-15 22:44:00 UTC (rev 19580)
@@ -75,7 +75,7 @@
@end{}
@declare{"actionMethod"}
-public static void @{methodName}(@foreach{type :globalTypes, identifier : globals} @{type} @{identifier} @end{","} ) throws Exception {
+public static void @{methodName}(org.drools.spi.KnowledgeHelper drools at if{globals != empty}, at end{} @foreach{type :globalTypes, identifier : globals} @{type} @{identifier} @end{","} ) throws Exception {
@{text}
}
@end{}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaActionBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaActionBuilderTest.java 2008-04-15 20:39:50 UTC (rev 19579)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaActionBuilderTest.java 2008-04-15 22:44:00 UTC (rev 19580)
@@ -9,6 +9,7 @@
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
+import org.drools.base.DefaultKnowledgeHelper;
import org.drools.compiler.PackageBuilder;
import org.drools.compiler.PackageBuilderConfiguration;
import org.drools.lang.descr.ActionDescr;
@@ -16,6 +17,7 @@
import org.drools.rule.Package;
import org.drools.rule.builder.ProcessBuildContext;
import org.drools.spi.Action;
+import org.drools.spi.KnowledgeHelper;
import org.drools.workflow.core.impl.WorkflowProcessImpl;
import org.drools.workflow.core.node.ActionNode;
@@ -62,7 +64,8 @@
List list = new ArrayList();
wm.setGlobal( "list", list );
- ((Action)actionNode.getAction()).execute( wm );
+ KnowledgeHelper knowledgeHelper = new DefaultKnowledgeHelper();
+ ((Action)actionNode.getAction()).execute( knowledgeHelper, wm );
assertEquals("hello world", list.get(0) );
}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilderTest.java 2008-04-15 20:39:50 UTC (rev 19579)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilderTest.java 2008-04-15 22:44:00 UTC (rev 19580)
@@ -9,12 +9,14 @@
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
+import org.drools.base.DefaultKnowledgeHelper;
import org.drools.compiler.PackageBuilder;
import org.drools.compiler.PackageBuilderConfiguration;
import org.drools.lang.descr.ActionDescr;
import org.drools.rule.Package;
import org.drools.rule.builder.PackageBuildContext;
import org.drools.spi.Action;
+import org.drools.spi.KnowledgeHelper;
import org.drools.workflow.core.node.ActionNode;
public class MVELActionBuilderTest extends TestCase {
@@ -49,9 +51,10 @@
final WorkingMemory wm = ruleBase.newStatefulSession();
List list = new ArrayList();
- wm.setGlobal( "list", list );
+ wm.setGlobal( "list", list );
- ((Action)actionNode.getAction()).execute( wm );
+ KnowledgeHelper knowledgeHelper = new DefaultKnowledgeHelper();
+ ((Action)actionNode.getAction()).execute( knowledgeHelper, wm );
assertEquals("hello world", list.get(0) );
}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELDecisionBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELDecisionBuilderTest.java 2008-04-15 20:39:50 UTC (rev 19579)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELDecisionBuilderTest.java 2008-04-15 22:44:00 UTC (rev 19580)
@@ -9,12 +9,14 @@
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
+import org.drools.base.DefaultKnowledgeHelper;
import org.drools.compiler.PackageBuilder;
import org.drools.compiler.PackageBuilderConfiguration;
import org.drools.lang.descr.ActionDescr;
import org.drools.rule.Package;
import org.drools.rule.builder.PackageBuildContext;
import org.drools.spi.Action;
+import org.drools.spi.KnowledgeHelper;
import org.drools.workflow.core.node.ActionNode;
public class MVELDecisionBuilderTest extends TestCase {
@@ -51,7 +53,8 @@
List list = new ArrayList();
wm.setGlobal( "list", list );
- ((Action)actionNode.getAction()).execute( wm );
+ KnowledgeHelper knowledgeHelper = new DefaultKnowledgeHelper();
+ ((Action)actionNode.getAction()).execute( knowledgeHelper, wm );
assertEquals("hello world", list.get(0) );
}
More information about the jboss-svn-commits
mailing list