[jboss-svn-commits] JBL Code SVN: r20779 - in labs/jbossrules/trunk/drools-clips/src: main/java/org/drools/clips/functions and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jun 25 22:45:18 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-06-25 22:45:17 -0400 (Wed, 25 Jun 2008)
New Revision: 20779
Added:
labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clips/functions/MinusFunction.java
Modified:
labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clips/Shell.java
labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/rule/builder/dialect/clips/ClipsDialect.java
labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clips/ShellTest.java
Log:
JBRULES-720 Clips Parser
-return value now works
Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clips/Shell.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clips/Shell.java 2008-06-26 02:45:07 UTC (rev 20778)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clips/Shell.java 2008-06-26 02:45:17 UTC (rev 20779)
@@ -39,6 +39,7 @@
import org.drools.clips.functions.GetFunction;
import org.drools.clips.functions.IfFunction;
import org.drools.clips.functions.LessThanFunction;
+import org.drools.clips.functions.MinusFunction;
import org.drools.clips.functions.ModifyFunction;
import org.drools.clips.functions.MoreThanFunction;
import org.drools.clips.functions.MultiplyFunction;
@@ -109,6 +110,7 @@
StringBuffer buf = new StringBuffer();
FunctionHandlers handlers = FunctionHandlers.getInstance();
handlers.registerFunction( new PlusFunction() );
+ handlers.registerFunction( new MinusFunction() );
handlers.registerFunction( new MultiplyFunction() );
handlers.registerFunction( new ModifyFunction() );
handlers.registerFunction( new CreateListFunction() );
Added: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clips/functions/MinusFunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clips/functions/MinusFunction.java (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clips/functions/MinusFunction.java 2008-06-26 02:45:17 UTC (rev 20779)
@@ -0,0 +1,14 @@
+package org.drools.clips.functions;
+
+public class MinusFunction extends BaseInfixFunction {
+ private static final String name = "-";
+ private static final String mappedSymbol = "-";
+
+ public String getName() {
+ return name;
+ }
+
+ public String getMappedSymbol() {
+ return mappedSymbol;
+ }
+}
Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/rule/builder/dialect/clips/ClipsDialect.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/rule/builder/dialect/clips/ClipsDialect.java 2008-06-26 02:45:07 UTC (rev 20778)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/rule/builder/dialect/clips/ClipsDialect.java 2008-06-26 02:45:17 UTC (rev 20779)
@@ -85,17 +85,19 @@
if ( pdescr.getContent() instanceof LispForm ) {
FunctionHandlers.dump( (LispForm) pdescr.getContent(),
builder );
-
+
content = builder.toString();
pdescr.setContent( content );
}
} else if ( descr instanceof ReturnValueRestrictionDescr ) {
-// Appendable builder = new StringBuilderAppendable();
-// ReturnValueRestrictionDescr rdescr = (ReturnValueRestrictionDescr) descr;
-// FunctionHandlers.dump( (LispForm) rdescr.getContent(),
-// builder );
-// content = builder.toString();
-// rdescr.setContent( content );
+ Appendable builder = new StringBuilderAppendable();
+ ReturnValueRestrictionDescr rdescr = (ReturnValueRestrictionDescr) descr;
+ if ( rdescr.getContent() instanceof LispForm ) {
+ FunctionHandlers.dump( (LispForm) rdescr.getContent(),
+ builder );
+ content = builder.toString();
+ rdescr.setContent( content );
+ }
}
return super.analyzeExpression( context,
descr,
Modified: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clips/ShellTest.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clips/ShellTest.java 2008-06-26 02:45:07 UTC (rev 20778)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clips/ShellTest.java 2008-06-26 02:45:17 UTC (rev 20779)
@@ -22,6 +22,7 @@
import org.drools.clips.functions.GetFunction;
import org.drools.clips.functions.IfFunction;
import org.drools.clips.functions.LessThanFunction;
+import org.drools.clips.functions.MinusFunction;
import org.drools.clips.functions.ModifyFunction;
import org.drools.clips.functions.MoreThanFunction;
import org.drools.clips.functions.MultiplyFunction;
@@ -44,6 +45,7 @@
public void setUp() {
FunctionHandlers handlers = FunctionHandlers.getInstance();
handlers.registerFunction( new PlusFunction() );
+ handlers.registerFunction( new MinusFunction() );
handlers.registerFunction( new MultiplyFunction() );
handlers.registerFunction( new ModifyFunction() );
handlers.registerFunction( new CreateListFunction() );
@@ -343,6 +345,16 @@
assertEquals( "hello bob",
new String( this.baos.toByteArray() ) );
}
+
+ public void testReturnValue() {
+ this.shell.eval( "(import org.drools.Person)" );
+ this.shell.eval( "(defrule testRule1 (Person (age ?age) ) (Person (name ?name) (age =(- ?age 3)) ) => (printout t hello) (printout t \" \" ?name) )" );
+ this.shell.eval( "(assert (Person (name mark) (age 32) ) )" );
+ this.shell.eval( "(assert (Person (name bob) (age 35) ) )" );
+ this.shell.eval( "(run)" );
+ assertEquals( "hello mark",
+ new String( this.baos.toByteArray() ) );
+ }
public void testRun() {
this.shell.eval( "(run)" );
More information about the jboss-svn-commits
mailing list