[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