[jboss-svn-commits] JBL Code SVN: r31148 - in labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor: server/rules and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jan 19 14:43:17 EST 2010


Author: eaa
Date: 2010-01-19 14:43:17 -0500 (Tue, 19 Jan 2010)
New Revision: 31148

Modified:
   labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/ModelField.java
   labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java
   labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java
Log:
SuggestionCompletionEngine refactor:
	Fixed a bug related to Type Declaration Types.

Modified: labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/ModelField.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/ModelField.java	2010-01-19 19:39:42 UTC (rev 31147)
+++ labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/ModelField.java	2010-01-19 19:43:17 UTC (rev 31148)
@@ -4,6 +4,11 @@
 
 public class ModelField implements PortableObject {
 
+    public static enum FIELD_CLASS_TYPE{
+        REGULAR_CLASS,
+        TYPE_DECLARATION_CLASS
+    }
+
     private String name;
     private String className;
     /**
@@ -11,14 +16,30 @@
      */
     private String type;
 
+    private FIELD_CLASS_TYPE classType;
+
     public ModelField() {
     }
 
     
-
+    /**
+     * Creates a new ModelField instance
+     * @param name field's name
+     * @param clazz the class of the field. For fields defined as a type declaration
+     * this clazz should be null.
+     * @param type the type of the clazz.
+     */
     public ModelField(String name, Class clazz, String type) {
         this.name = name;
-        this.className = clazz.getName();
+        
+        //if clazz==null it is considered as a Type Declaration
+        if (clazz == null){
+            this.classType = FIELD_CLASS_TYPE.TYPE_DECLARATION_CLASS;
+        }else{
+            this.classType = FIELD_CLASS_TYPE.REGULAR_CLASS;
+            this.className = clazz.getName();
+        }
+
         this.type = type;
     }
 
@@ -33,4 +54,10 @@
     public String getType() {
         return type;
     }
+
+    public FIELD_CLASS_TYPE getClassType() {
+        return classType;
+    }
+
+    
 }

Modified: labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java	2010-01-19 19:39:42 UTC (rev 31147)
+++ labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java	2010-01-19 19:43:17 UTC (rev 31148)
@@ -634,6 +634,8 @@
         if (!this.modelFields.containsKey(modelClassName)){
             return null;
         }
+
+        System.out.println("ASSA");
         
         ModelField[] fields = this.modelFields.get(modelClassName);
 

Modified: labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java	2010-01-19 19:39:42 UTC (rev 31147)
+++ labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java	2010-01-19 19:43:17 UTC (rev 31148)
@@ -303,25 +303,20 @@
         }
 
         /** now we do the dynamic facts - the declared types */
-        Map<String,Class> declaredTypes = new HashMap<String,Class>();
+        Set<String> declaredTypes = new HashSet<String>();
 
         for (final Iterator<TypeDeclarationDescr> it = pkgDescr.getTypeDeclarations().iterator(); it.hasNext();) {
             TypeDeclarationDescr td = it.next();
+            declaredTypes.add(td.getTypeName());
+        }
 
+        for (final Iterator<TypeDeclarationDescr> it = pkgDescr.getTypeDeclarations().iterator(); it.hasNext();) {
+            TypeDeclarationDescr td = it.next();
+
             if (td.getFields().size() > 0) {
                 //add the type to the map
                 String declaredType = td.getTypeName();
-                Class clz;
-                try {
-                    clz = resolver.resolveType(declaredType);
-                } catch (ClassNotFoundException ex) {
-                    this.errors.add("Class not found: " + declaredType);
-                    continue;
-                }
                 
-                declaredTypes.put(declaredType,clz);
-
-
                 this.builder.addFactType(declaredType);
                 List<String> fieldNames = new ArrayList<String>();
                 for (Map.Entry<String, TypeFieldDescr> f : td.getFields().entrySet()) {
@@ -330,14 +325,12 @@
                     String fieldClass = f.getValue().getPattern().getObjectType();
 
 
-                    if (declaredTypes.containsKey(fieldClass)) {
-                        this.builder.addFieldType(declaredType + "." + fieldName, fieldClass,declaredTypes.get(fieldClass));//SuggestionCompletionEngine.TYPE_OBJECT );
+                    if (declaredTypes.contains(fieldClass)) {
+                        this.builder.addFieldType(declaredType + "." + fieldName, fieldClass,null);//SuggestionCompletionEngine.TYPE_OBJECT );
                     } else {
                         try {
-                            clz = resolver.resolveType(fieldClass);
+                            Class clz = resolver.resolveType(fieldClass);
                             this.builder.addFieldType(declaredType + "." + fieldName, getFieldType(clz),clz);
-                            
-                            declaredTypes.put(declaredType,clz);
                         } catch (ClassNotFoundException e) {
                             this.errors.add("Class of field not found: " + fieldClass);
                         }



More information about the jboss-svn-commits mailing list