[jboss-svn-commits] JBL Code SVN: r32357 - labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Apr 1 13:59:48 EDT 2010


Author: baunax
Date: 2010-04-01 13:59:48 -0400 (Thu, 01 Apr 2010)
New Revision: 32357

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/FactTypeFilter.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java
Log:
Don't deleted anymore from the SuggestionCompletionEngine the facts filtered by the WorkingSet.

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/FactTypeFilter.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/FactTypeFilter.java	2010-04-01 17:59:11 UTC (rev 32356)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/FactTypeFilter.java	2010-04-01 17:59:48 UTC (rev 32357)
@@ -1,10 +1,14 @@
 package org.drools.guvnor.client.modeldriven;
 
+import java.io.Serializable;
+
+import org.drools.guvnor.client.modeldriven.brl.PortableObject;
+
 /**
  *
  * @author esteban.aliverti at gmail.com
  */
-public interface FactTypeFilter {
+public interface FactTypeFilter extends PortableObject {
 
     /**
      * Indicates if a fact should be filtered or not.

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java	2010-04-01 17:59:11 UTC (rev 32356)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java	2010-04-01 17:59:48 UTC (rev 32357)
@@ -22,9 +22,7 @@
  * 
  * @author Michael Neale
  */
-public class SuggestionCompletionEngine
-    implements
-    PortableObject {
+public class SuggestionCompletionEngine implements PortableObject {
 
     /** These are the explicit types supported */
     public static final String            TYPE_COLLECTION        = "Collection";
@@ -154,8 +152,11 @@
     private Map<String, List<MethodInfo>> methodInfos            = new HashMap<String, List<MethodInfo>>();
 
     private Map<String, ModelField[]> modelFields = new HashMap<String, ModelField[]>();
+    private Map<String, ModelField[]> filterModelFields = null;
 
     private Map<String, FieldAccessorsAndMutators> accessorsAndMutators = new HashMap<String, FieldAccessorsAndMutators>();
+	private FactTypeFilter factFilter = null;
+	private boolean filteringFacts = true;
     
     public SuggestionCompletionEngine() {
 
@@ -564,10 +565,10 @@
     	if (type == null) {
     		return null;
     	}
-    	if (modelFields.containsKey(type)) {
+    	if (getModelFields().containsKey(type)) {
     		return type;
     	} 
-    	for (Map.Entry<String, ModelField[]> entry : modelFields.entrySet()) {
+    	for (Map.Entry<String, ModelField[]> entry : getModelFields().entrySet()) {
 			for (ModelField mf : entry.getValue()) {
 				if ("this".equals(mf.getName()) && type.equals(mf.getClassName())) {
 					return entry.getKey();
@@ -658,22 +659,18 @@
     public void setFactTypes(String[] factTypes) {
         for (String factType : factTypes) {
             //adds the fact type with no fields.
-            this.modelFields.put(factType, new ModelField[0]);
+            this.getModelFields().put(factType, new ModelField[0]);
         }
     }
 
-    public void filterFactTypes(FactTypeFilter filter){
-
-        for (String factType : this.getFactTypes()) {
-            if (filter.filter(factType)){
-                this.modelFields.remove(factType);
-            }
-        }
+    public void setFactTypeFilter(FactTypeFilter filter){
+    	this.factFilter = filter;
+    	filterModelFields();
     }
 
     public void setFieldsForTypes(Map<String,ModelField[]> fieldsForType){
-    	this.modelFields.clear();
-        this.modelFields.putAll(fieldsForType);
+    	this.getModelFields().clear();
+        this.getModelFields().putAll(fieldsForType);
     }
 
     /**
@@ -681,17 +678,17 @@
      * @return
      */
     public String[] getFactTypes() {
-        String[] types = this.modelFields.keySet().toArray(new String[this.modelFields.size()]);
+        String[] types = this.getModelFields().keySet().toArray(new String[this.getModelFields().size()]);
         Arrays.sort(types);
 		return types;
     }
 
     public boolean containsFactType(String modelClassName){
-        return this.modelFields.containsKey(modelClassName);
+        return this.getModelFields().containsKey(modelClassName);
     }
 
     private ModelField getField(String modelClassName, String fieldName){
-        ModelField[] fields = this.modelFields.get(modelClassName);
+        ModelField[] fields = this.getModelFields().get(modelClassName);
 
         if (fields == null){
             return null;
@@ -709,11 +706,11 @@
     public String[] getModelFields(FieldAccessorsAndMutators accessorOrMutator,
                                    String modelClassName) {
 
-        if ( !this.modelFields.containsKey( modelClassName ) ) {
+        if ( !this.getModelFields().containsKey( modelClassName ) ) {
             return new String[0];
         }
 
-        ModelField[] fields = this.modelFields.get( modelClassName );
+        ModelField[] fields = this.getModelFields().get( modelClassName );
 
         List<String> fieldNames = new ArrayList<String>();
         fieldNames.add( "this" );
@@ -733,11 +730,11 @@
 
     public String[] getModelFields(String modelClassName){
 
-        if (!this.modelFields.containsKey(modelClassName)){
+        if (!this.getModelFields().containsKey(modelClassName)){
             return new String[0];
         }
 
-        ModelField[] fields = this.modelFields.get(modelClassName);
+        ModelField[] fields = this.getModelFields().get(modelClassName);
 
         String[] fieldNames = new String[fields.length];
 
@@ -786,7 +783,38 @@
 
     public void setAccessorsAndMutators(Map<String, FieldAccessorsAndMutators> accessorsAndMutators) {
         this.accessorsAndMutators=accessorsAndMutators;
-        
     }
 
+    
+    
+	public void setModelFields(Map<String, ModelField[]> modelFields) {
+		this.modelFields = modelFields;
+		filterModelFields();
+	}
+
+	private void filterModelFields() {
+		if (factFilter != null) {
+			filterModelFields = new HashMap<String, ModelField[]>();
+			for (Map.Entry<String, ModelField[]> entry : modelFields.entrySet()) {
+				if (!factFilter.filter(entry.getKey())) {
+					filterModelFields.put(entry.getKey(), entry.getValue());
+				}
+			}
+		}
+	}
+	
+	public Map<String, ModelField[]> getModelFields() {
+		if (factFilter != null && isFilteringFacts()) {
+			return filterModelFields;
+		}
+		return modelFields;
+	}
+
+	public boolean isFilteringFacts() {
+		return filteringFacts;
+	}
+
+	public void setFilteringFacts(boolean filterFacts) {
+		this.filteringFacts = filterFacts;
+	}
 }



More information about the jboss-svn-commits mailing list