[jboss-svn-commits] JBL Code SVN: r31393 - in labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src: main/java/org/drools/guvnor/server/rules and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Feb 3 14:06:24 EST 2010
Author: baunax
Date: 2010-02-03 14:06:23 -0500 (Wed, 03 Feb 2010)
New Revision: 31393
Modified:
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/util/DataEnumLoader.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine2Test.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngineTest.java
Log:
- added some tests
- added generics to missing parts
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java 2010-02-03 18:46:47 UTC (rev 31392)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java 2010-02-03 19:06:23 UTC (rev 31393)
@@ -238,7 +238,7 @@
public DropDownData getEnums(FactPattern pat,
String field) {
- Map dataEnumLookupFields = loadDataEnumLookupFields();
+ Map<String, Object> dataEnumLookupFields = loadDataEnumLookupFields();
if ( pat.constraintList != null && pat.constraintList.constraints != null ) {
// we may need to check for data dependent enums
@@ -279,9 +279,9 @@
key += "]";
}
- DropDownData data = DropDownData.create( (String[]) this.dataEnumLists.get( key ) );
+ DropDownData data = DropDownData.create( this.dataEnumLists.get( key ) );
if ( data != null ) {
- return DropDownData.create( (String[]) this.dataEnumLists.get( key ) );
+ return DropDownData.create( this.dataEnumLists.get( key ) );
}
} else if ( _typeFields != null ) {
// these enums are calculated on demand, server side...
@@ -326,7 +326,7 @@
String field) {
if ( currentValues != null ) {
- Map dataEnumLookupFields = loadDataEnumLookupFields();
+ Map<String, Object> dataEnumLookupFields = loadDataEnumLookupFields();
Object _typeField = dataEnumLookupFields.get( type + "." + field );
if ( _typeField instanceof String ) {
@@ -376,9 +376,9 @@
String getQueryString(String factType,
String field,
String[] fieldsNeeded,
- Map dataEnumLists) {
- for ( Iterator iterator = dataEnumLists.keySet().iterator(); iterator.hasNext(); ) {
- String key = (String) iterator.next();
+ Map<String, String[]> dataEnumLists) {
+ for ( Iterator<String> iterator = dataEnumLists.keySet().iterator(); iterator.hasNext(); ) {
+ String key = iterator.next();
if ( key.startsWith( factType + "." + field ) && fieldsNeeded != null && key.contains( "[" ) ) {
String[] values = key.substring( key.indexOf( '[' ) + 1,
@@ -423,12 +423,12 @@
* This is only used by enums that are like Fact.field[something=X] and so
* on.
*/
- Map loadDataEnumLookupFields() {
+ Map<String, Object> loadDataEnumLookupFields() {
if ( this.dataEnumLookupFields == null ) {
- this.dataEnumLookupFields = new HashMap();
- Set keys = this.dataEnumLists.keySet();
- for ( Iterator iter = keys.iterator(); iter.hasNext(); ) {
- String key = (String) iter.next();
+ this.dataEnumLookupFields = new HashMap<String, Object>();
+ Set<String> keys = this.dataEnumLists.keySet();
+ for ( Iterator<String> iter = keys.iterator(); iter.hasNext(); ) {
+ String key = iter.next();
if ( key.indexOf( '[' ) != -1 ) {
int ix = key.indexOf( '[' );
String factField = key.substring( 0,
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java 2010-02-03 18:46:47 UTC (rev 31392)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java 2010-02-03 19:06:23 UTC (rev 31393)
@@ -90,7 +90,7 @@
}
}
this.loader = new MapBackedClassLoader(classLoader);
- this.resolver = new ClassTypeResolver(new HashSet(),
+ this.resolver = new ClassTypeResolver(new HashSet<String>(),
this.loader);
}
@@ -105,8 +105,8 @@
* @return A SuggestionCompletionEngine ready to be used in anger.
*/
public SuggestionCompletionEngine getSuggestionEngine(final String header,
- final List jars,
- final List dsls) {
+ final List<JarInputStream> jars,
+ final List<DSLTokenizedMappingFile> dsls) {
return this.getSuggestionEngine(header, jars, dsls, Collections.EMPTY_LIST);
}
@@ -124,9 +124,9 @@
* @return A SuggestionCompletionEngine ready to be used in anger.
*/
public SuggestionCompletionEngine getSuggestionEngine(final String header,
- final List jars,
- final List dsls,
- final List dataEnums) {
+ final List<JarInputStream> jars,
+ final List<DSLTokenizedMappingFile> dsls,
+ final List<String> dataEnums) {
this.builder.newCompletionEngine();
if (!header.trim().equals("")) {
@@ -145,9 +145,9 @@
return sce;
}
- private void populateDateEnums(List dataEnums, SuggestionCompletionEngine sce) {
- for (Iterator iter = dataEnums.iterator(); iter.hasNext();) {
- String enumFile = (String) iter.next();
+ private void populateDateEnums(List<String> dataEnums, SuggestionCompletionEngine sce) {
+ for (Iterator<String> iter = dataEnums.iterator(); iter.hasNext();) {
+ String enumFile = iter.next();
DataEnumLoader enumLoader = new DataEnumLoader(enumFile);
if (enumLoader.hasErrors()) {
this.errors.addAll(enumLoader.getErrors());
@@ -191,7 +191,7 @@
* @param pkg
* @param errors
*/
- private void populateDSLSentences(final List dsls) {
+ private void populateDSLSentences(final List<DSLTokenizedMappingFile> dsls) {
// AssetItemIterator it = pkg.listAssetsByFormat( new
// String[]{AssetFormats.DSL} );
// while ( it.hasNext() ) {
@@ -221,8 +221,8 @@
// }
// }
- for (final Iterator it = dsls.iterator(); it.hasNext();) {
- final DSLTokenizedMappingFile file = (DSLTokenizedMappingFile) it.next();
+ for (final Iterator<DSLTokenizedMappingFile> it = dsls.iterator(); it.hasNext();) {
+ final DSLTokenizedMappingFile file = it.next();
final DSLMapping mapping = file.getMapping();
for (final Iterator entries = mapping.getEntries().iterator(); entries.hasNext();) {
final AbstractDSLMappingEntry entry = (AbstractDSLMappingEntry) entries.next();
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/util/DataEnumLoader.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/util/DataEnumLoader.java 2010-02-03 18:46:47 UTC (rev 31392)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/util/DataEnumLoader.java 2010-02-03 19:06:23 UTC (rev 31393)
@@ -3,7 +3,6 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
@@ -15,21 +14,21 @@
*/
public class DataEnumLoader {
- private final List errors;
- private final Map data;
+ private final List<String> errors;
+ private final Map<String, String[]> data;
/**
* This is the source of the asset, which is an MVEL map (minus the outer "[") of course.
*/
public DataEnumLoader(String mvelSource) {
- errors = new ArrayList();
+ errors = new ArrayList<String>();
this.data = loadEnum(mvelSource);
}
- private Map loadEnum(String mvelSource) {
+ private Map<String, String[]> loadEnum(String mvelSource) {
if (mvelSource == null || (mvelSource.trim().equals( "" ))) {
- return Collections.EMPTY_MAP;
+ return Collections.emptyMap();
}
if (mvelSource.startsWith("=")) {
mvelSource = mvelSource.substring(1);
@@ -38,33 +37,33 @@
}
final Object mvelData;
try {
- mvelData = MVEL.eval(mvelSource, new HashMap());
+ mvelData = MVEL.eval(mvelSource, new HashMap<String, Object>());
} catch (RuntimeException e) {
addError("Unable to load enumeration data.");
addError(e.getMessage());
addError("Error type: " + e.getClass().getName());
- return Collections.EMPTY_MAP;
+ return Collections.emptyMap();
}
- if (!(mvelData instanceof Map)) {
+ if (!(mvelData instanceof Map<?, ?>)) {
addError("The expression is not a map, it is a " + mvelData.getClass().getName());
- return Collections.EMPTY_MAP;
+ return Collections.emptyMap();
}
- Map map = (Map) mvelData;
- Map newMap = new HashMap();
- for (Iterator iter = map.keySet().iterator(); iter.hasNext();) {
- String key = (String) iter.next();
- Object list = map.get(key);
- if (!(list instanceof List || list instanceof String)) {
+ Map<String, Object> map = (Map<String, Object>) mvelData;
+ Map<String, String[]> newMap = new HashMap<String, String[]>();
+ for (Map.Entry<String, Object> entry: map.entrySet()) {
+ String key = entry.getKey();
+ Object list = entry.getValue();
+ if (!(list instanceof List<?> || list instanceof String)) {
if (list == null) {
addError("The item with " + key + " is null.");
} else {
addError("The item with " + key + " is not a list or a string, it is a " + list.getClass().getName());
}
- return new HashMap();
+ return Collections.emptyMap();
} else if (list instanceof String) {
newMap.put(key, new String[] {(String)list});
} else {
- List items = (List) list;
+ List<?> items = (List<?>) list;
String[] newItems = new String[items.size()];
for (int i = 0; i < items.size(); i++) {
Object listItem = items.get(i);
@@ -107,7 +106,7 @@
/**
* Return a list of any errors found.
*/
- public List getErrors() {
+ public List<String> getErrors() {
return this.errors;
}
@@ -118,7 +117,7 @@
/**
* Return the map of Fact.field to List (of Strings).
*/
- public Map getData() {
+ public Map<String, String[]> getData() {
return this.data;
}
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine2Test.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine2Test.java 2010-02-03 18:46:47 UTC (rev 31392)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine2Test.java 2010-02-03 19:06:23 UTC (rev 31393)
@@ -3,14 +3,13 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashSet;
import java.util.List;
-import java.util.Set;
import java.util.jar.JarInputStream;
import junit.framework.TestCase;
import org.drools.guvnor.server.rules.SuggestionCompletionLoader;
+import org.drools.lang.dsl.DSLTokenizedMappingFile;
public class SuggestionCompletionEngine2Test extends TestCase {
@@ -20,9 +19,9 @@
SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
SuggestionCompletionEngine engine = loader.getSuggestionEngine( pkg,
- new ArrayList(),
- new ArrayList(),
- new ArrayList() );
+ new ArrayList<JarInputStream>(),
+ new ArrayList<DSLTokenizedMappingFile>(),
+ new ArrayList<String>() );
List<String> methodNames = engine.getMethodNames( "ArrayList" );
@@ -44,7 +43,7 @@
// Add jar file
String header = "package foo \n import org.test.Person \n import org.test.Banana \n ";
- List jars = new ArrayList();
+ List<JarInputStream> jars = new ArrayList<JarInputStream>();
JarInputStream jis = null;
SuggestionCompletionEngine suggestionCompletionEngine = null;
@@ -58,7 +57,7 @@
try {
suggestionCompletionEngine = loader.getSuggestionEngine( header,
jars,
- new ArrayList() );
+ new ArrayList<DSLTokenizedMappingFile>() );
} catch ( ClassFormatError e ) {
fail( "Can not load suggestions " + e );
}
@@ -73,6 +72,10 @@
assertTrue( list.contains( "Person" ) );
assertTrue( list.contains( "Banana" ) );
+
+ assertEquals("java.util.Collection", suggestionCompletionEngine.getFieldClassName("Person", "bananas"));
+ assertEquals(SuggestionCompletionEngine.TYPE_COLLECTION, suggestionCompletionEngine.getFieldType("Person", "bananas"));
+ assertEquals("Banana", suggestionCompletionEngine.getParametricFieldType("Person", "bananas"));
}
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngineTest.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngineTest.java 2010-02-03 18:46:47 UTC (rev 31392)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngineTest.java 2010-02-03 19:06:23 UTC (rev 31393)
@@ -4,14 +4,15 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.jar.JarInputStream;
import junit.framework.TestCase;
import org.drools.guvnor.client.modeldriven.brl.ActionFieldValue;
import org.drools.guvnor.client.modeldriven.brl.FactPattern;
-import org.drools.guvnor.client.modeldriven.brl.FieldConstraint;
import org.drools.guvnor.client.modeldriven.brl.SingleFieldConstraint;
import org.drools.guvnor.server.rules.SuggestionCompletionLoader;
+import org.drools.lang.dsl.DSLTokenizedMappingFile;
public class SuggestionCompletionEngineTest extends TestCase {
@@ -20,8 +21,8 @@
SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
SuggestionCompletionEngine engine = loader.getSuggestionEngine( pkg,
- new ArrayList(),
- new ArrayList() );
+ new ArrayList<JarInputStream>(),
+ new ArrayList<DSLTokenizedMappingFile>() );
assertEquals( "String",
engine.getFieldType( "SuggestionCompletionEngineTest$NestedClass",
@@ -33,8 +34,8 @@
SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
SuggestionCompletionEngine engine = loader.getSuggestionEngine( pkg,
- new ArrayList(),
- new ArrayList() );
+ new ArrayList<JarInputStream>(),
+ new ArrayList<DSLTokenizedMappingFile>() );
assertEquals( SuggestionCompletionEngine.TYPE_STRING,
engine.getFieldType( "Alert",
@@ -53,8 +54,8 @@
enums.add( "'Driver.sex' : ['M', 'F']" );
SuggestionCompletionEngine engine = loader.getSuggestionEngine( pkg,
- new ArrayList(),
- new ArrayList(),
+ new ArrayList<JarInputStream>(),
+ new ArrayList<DSLTokenizedMappingFile>(),
enums );
assertEquals( "String",
engine.getFieldType( "SuggestionCompletionEngineTest$NestedClass",
@@ -93,13 +94,13 @@
SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
- List enums = new ArrayList();
+ List<String> enums = new ArrayList<String>();
enums.add( "'Fact.f1' : ['a1', 'a2'] \n 'Fact.f2' : ['def1', 'def2', 'def3'] \n 'Fact.f2[f1=a2]' : ['c1', 'c2']" );
SuggestionCompletionEngine engine = loader.getSuggestionEngine( pkg,
- new ArrayList(),
- new ArrayList(),
+ new ArrayList<JarInputStream>(),
+ new ArrayList<DSLTokenizedMappingFile>(),
enums );
assertEquals( "String",
engine.getFieldType( "SuggestionCompletionEngineTest$NestedClass",
@@ -130,8 +131,8 @@
enums.add( "'Fact.field1' : ['val1', 'val2'] 'Fact.field2' : ['val3', 'val4'] 'Fact.field2[field1=val1]' : ['f1val1a', 'f1val1b'] 'Fact.field2[field1=val2]' : ['f1val2a', 'f1val2b']" );
SuggestionCompletionEngine engine = loader.getSuggestionEngine( pkg,
- new ArrayList(),
- new ArrayList(),
+ new ArrayList<JarInputStream>(),
+ new ArrayList<DSLTokenizedMappingFile>(),
enums );
assertEquals( "String",
engine.getFieldType( "SuggestionCompletionEngineTest$Fact",
@@ -352,7 +353,7 @@
public void testSmartEnums() {
final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
- sce.setDataEnumLists(new HashMap());
+ sce.setDataEnumLists(new HashMap<String, String[]>());
sce.putDataEnumList( "Fact.type",
new String[]{"sex", "colour"} );
sce.putDataEnumList( "Fact.value[type=sex]",
@@ -424,7 +425,7 @@
public void testSmartEnumsDependingOfSeveralFieldsTwo() {
final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
- sce.setDataEnumLists(new HashMap());
+ sce.setDataEnumLists(new HashMap<String, String[]>());
sce.putDataEnumList( "Fact.field1",
new String[]{"a1", "a2"} );
sce.putDataEnumList( "Fact.field2",
@@ -457,7 +458,7 @@
public void testSmartEnumsDependingOfSeveralFieldsFive() {
final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
- sce.setDataEnumLists(new HashMap());
+ sce.setDataEnumLists(new HashMap<String, String[]>());
sce.putDataEnumList( "Fact.field1",
new String[]{"a1", "a2"} );
sce.putDataEnumList( "Fact.field2",
@@ -504,7 +505,7 @@
public void testSmarterLookupEnums() {
final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
- sce.setDataEnumLists(new HashMap());
+ sce.setDataEnumLists(new HashMap<String, String[]>());
sce.putDataEnumList( "Fact.type",
new String[]{"sex", "colour"} );
sce.putDataEnumList( "Fact.value[f1, f2]",
@@ -520,7 +521,7 @@
assertEquals( "colour",
drops[1] );
- Map lookupFields = sce.loadDataEnumLookupFields();
+ Map<String, Object> lookupFields = sce.loadDataEnumLookupFields();
assertEquals( 1,
lookupFields.size() );
String[] flds = (String[]) lookupFields.get( "Fact.value" );
@@ -581,7 +582,7 @@
public void testSmarterLookupEnumsDifferentOrder() {
final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
- sce.setDataEnumLists(new HashMap());
+ sce.setDataEnumLists(new HashMap<String, String[]>());
sce.putDataEnumList( "Fact.type",
new String[]{"sex", "colour"} );
sce.putDataEnumList( "Fact.value[e1, e2]",
@@ -599,7 +600,7 @@
assertEquals( "colour",
drops[1] );
- Map lookupFields = sce.loadDataEnumLookupFields();
+ Map<String, Object> lookupFields = sce.loadDataEnumLookupFields();
assertEquals( 1,
lookupFields.size() );
String[] flds = (String[]) lookupFields.get( "Fact.value" );
@@ -660,7 +661,7 @@
public void testSimpleEnums() {
final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
- sce.setDataEnumLists(new HashMap());
+ sce.setDataEnumLists(new HashMap<String, String[]>());
sce.putDataEnumList( "Fact.type",
new String[]{"sex", "colour"} );
assertEquals( 2,
@@ -690,10 +691,9 @@
public void testGlobalAndFacts() {
final SuggestionCompletionEngine com = new SuggestionCompletionEngine();
- com.setGlobalVariables(new HashMap() {
+ com.setGlobalVariables(new HashMap<String, String>() {
{
- put( "y",
- "Foo" );
+ put( "y", "Foo" );
}
});
@@ -712,11 +712,9 @@
public void testDataDropDown() {
assertNull( DropDownData.create( null ) );
- assertNull( DropDownData.create( null,
- null ) );
- assertTrue( DropDownData.create( new String[]{"hey"} ) instanceof DropDownData );
- assertTrue( DropDownData.create( "abc",
- new String[]{"hey"} ) instanceof DropDownData );
+ assertNull( DropDownData.create( null, null ) );
+ assertNotNull( DropDownData.create( new String[]{"hey"} ));
+ assertNotNull( DropDownData.create( "abc", new String[]{"hey"} ) );
}
More information about the jboss-svn-commits
mailing list