[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