[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