[jboss-svn-commits] JBL Code SVN: r15071 - in labs/jbossrules/trunk/drools-compiler/src: main/java/org/drools/brms/server/rules and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Sep 12 21:46:46 EDT 2007


Author: michael.neale at jboss.com
Date: 2007-09-12 21:46:45 -0400 (Wed, 12 Sep 2007)
New Revision: 15071

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/rules/SomeFact.java
Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/rules/SuggestionCompletionLoader.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/rules/SuggestionCompletionLoaderTest.java
Log:
JBRULES-1187

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java	2007-09-13 01:17:34 UTC (rev 15070)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java	2007-09-13 01:46:45 UTC (rev 15071)
@@ -23,6 +23,9 @@
     public static final String    TYPE_COMPARABLE        = "Comparable";
     public static final String    TYPE_STRING            = "String";
     public static final String    TYPE_NUMERIC           = "Numeric";
+    public static final String    TYPE_BOOLEAN           = "Boolean";
+    //public static final String    TYPE_DATE              = "Date";
+    public static final String    TYPE_OBJECT            = "Object"; //for all other unknown types
 
     /**
      * The operators that are used at different times (based on type).
@@ -185,6 +188,14 @@
 
     }
 
+
+    /**
+     * A map of the Fields to their types, needed for operator completions,
+     * as well as other things like rendering strings, dates etc.
+     * This is in the format of: { 'Type.field' => 'typename' }.
+     * Should not be the exact type, perhaps just a high level interface, eg "Comparable", "Numeric", "String".
+     *
+     */
     public String getFieldType(final String factType,
                                final String fieldName) {
         return (String) this.fieldTypes.get( factType + "." + fieldName );

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/rules/SuggestionCompletionLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/rules/SuggestionCompletionLoader.java	2007-09-13 01:17:34 UTC (rev 15070)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/rules/SuggestionCompletionLoader.java	2007-09-13 01:46:45 UTC (rev 15071)
@@ -5,6 +5,7 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Date;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -423,8 +424,15 @@
                 fieldType = SuggestionCompletionEngine.TYPE_STRING;
             } else if ( Collection.class.isAssignableFrom( type ) ) {
                 fieldType = SuggestionCompletionEngine.TYPE_COLLECTION;
+            } else if ( Boolean.class.isAssignableFrom( type ) || boolean.class.isAssignableFrom( type )) {
+                fieldType = SuggestionCompletionEngine.TYPE_BOOLEAN;
             } else if ( Comparable.class.isAssignableFrom( type ) ) {
                 fieldType = SuggestionCompletionEngine.TYPE_COMPARABLE;
+            } /*else if ( Date.class.isAssignableFrom( type )) {
+                fieldType = SuggestionCompletionEngine.TYPE_DATE; MN: wait until we support it.
+
+            }*/ else {
+                fieldType = SuggestionCompletionEngine.TYPE_OBJECT;
             }
         }
         return fieldType;

Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/rules/SomeFact.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/rules/SomeFact.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/rules/SomeFact.java	2007-09-13 01:46:45 UTC (rev 15071)
@@ -0,0 +1,126 @@
+package org.drools.brms.server.rules;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Date;
+
+import org.drools.Cheese;
+
+public class SomeFact {
+    private static final long serialVersionUID = 400L;
+    private String            name;
+    private String            likes;
+    private int               age;
+    private BigDecimal        bigDecimal;
+    private BigInteger        bigInteger;
+    private String            hair;
+
+    private char              sex;
+
+    private boolean           alive;
+
+    private String            status;
+
+    private Cheese            cheese;
+
+    private Date              date;
+
+    private Boolean           dead;
+
+    public int getAge() {
+        return age;
+    }
+
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    public boolean isAlive() {
+        return alive;
+    }
+
+    public void setAlive(boolean alive) {
+        this.alive = alive;
+    }
+
+    public BigDecimal getBigDecimal() {
+        return bigDecimal;
+    }
+
+    public void setBigDecimal(BigDecimal bigDecimal) {
+        this.bigDecimal = bigDecimal;
+    }
+
+    public BigInteger getBigInteger() {
+        return bigInteger;
+    }
+
+    public void setBigInteger(BigInteger bigInteger) {
+        this.bigInteger = bigInteger;
+    }
+
+    public Cheese getCheese() {
+        return cheese;
+    }
+
+    public void setCheese(Cheese cheese) {
+        this.cheese = cheese;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public Boolean getDead() {
+        return dead;
+    }
+
+    public void setDead(Boolean dead) {
+        this.dead = dead;
+    }
+
+    public String getHair() {
+        return hair;
+    }
+
+    public void setHair(String hair) {
+        this.hair = hair;
+    }
+
+    public String getLikes() {
+        return likes;
+    }
+
+    public void setLikes(String likes) {
+        this.likes = likes;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public char getSex() {
+        return sex;
+    }
+
+    public void setSex(char sex) {
+        this.sex = sex;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+}


Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/rules/SomeFact.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/rules/SuggestionCompletionLoaderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/rules/SuggestionCompletionLoaderTest.java	2007-09-13 01:17:34 UTC (rev 15070)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/rules/SuggestionCompletionLoaderTest.java	2007-09-13 01:46:45 UTC (rev 15071)
@@ -15,6 +15,24 @@
 
     }
 
+
+    public void testLoadDifferentFieldTypes() throws Exception {
+        SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
+        SuggestionCompletionEngine eng = loader.getSuggestionEngine( "package foo \n import org.drools.brms.server.rules.SomeFact", new ArrayList(), new ArrayList() );
+        assertNotNull(eng);
+
+        assertEquals(SuggestionCompletionEngine.TYPE_NUMERIC, eng.getFieldType( "SomeFact", "age" ));
+        assertEquals(SuggestionCompletionEngine.TYPE_STRING, eng.getFieldType( "SomeFact", "likes"));
+        assertEquals(SuggestionCompletionEngine.TYPE_STRING, eng.getFieldType( "SomeFact","name"));
+        assertEquals(SuggestionCompletionEngine.TYPE_NUMERIC, eng.getFieldType("SomeFact", "bigDecimal"));
+        assertEquals(SuggestionCompletionEngine.TYPE_COMPARABLE, eng.getFieldType( "SomeFact", "date"));
+        assertEquals(SuggestionCompletionEngine.TYPE_OBJECT, eng.getFieldType( "SomeFact", "cheese"));
+        assertEquals(SuggestionCompletionEngine.TYPE_BOOLEAN, eng.getFieldType( "SomeFact", "dead"));
+        assertEquals(SuggestionCompletionEngine.TYPE_BOOLEAN, eng.getFieldType( "SomeFact", "alive"));
+
+    }
+
+
     public void testLoaderWithExistingClassloader() throws Exception {
         MockClassLoader mcl = new MockClassLoader();
         SuggestionCompletionLoader loader = new SuggestionCompletionLoader(mcl);
@@ -25,6 +43,7 @@
 
     }
 
+
     static class MockClassLoader extends ClassLoader {
 
         public boolean called = false;




More information about the jboss-svn-commits mailing list