[jboss-svn-commits] JBL Code SVN: r35204 - in labs/jbossrules/trunk: drools-compiler/src/main/java/org/drools/compiler and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Sep 21 03:01:22 EDT 2010
Author: laune
Date: 2010-09-21 03:01:20 -0400 (Tue, 21 Sep 2010)
New Revision: 35204
Modified:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/conf/KnowledgeBuilderOptionsConfiguration.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/builder/KnowledgeBuilderConfigurationTest.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorRegistry.java
Log:
Add getOptionKeys to KnowledgeBuilderOptionsConfiguration
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/conf/KnowledgeBuilderOptionsConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/conf/KnowledgeBuilderOptionsConfiguration.java 2010-09-21 06:03:49 UTC (rev 35203)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/conf/KnowledgeBuilderOptionsConfiguration.java 2010-09-21 07:01:20 UTC (rev 35204)
@@ -16,6 +16,8 @@
package org.drools.builder.conf;
+import java.util.Set;
+
/**
* A base interface for type safe configurations
*
@@ -56,5 +58,12 @@
*/
public <T extends MultiValueKnowledgeBuilderOption> T getOption( Class<T> option, String key );
+ /**
+ * Retrieves the set of all keys for a MultiValueKnowledgeBuilderOption.
+ *
+ * @param option the option class for the requested keys
+ * @return a Set of Strings
+ */
+ public <T extends MultiValueKnowledgeBuilderOption> Set<String> getOptionKeys( Class<T> option );
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java 2010-09-21 06:03:49 UTC (rev 35203)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java 2010-09-21 07:01:20 UTC (rev 35204)
@@ -22,6 +22,7 @@
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
+import java.util.Set;
import java.util.Map.Entry;
import org.drools.RuntimeDroolsException;
@@ -618,6 +619,16 @@
}
return null;
}
+
+ public <T extends MultiValueKnowledgeBuilderOption> Set<String> getOptionKeys(
+ Class<T> option) {
+ if ( AccumulateFunctionOption.class.equals( option ) ) {
+ return this.accumulateFunctions.keySet();
+ } else if ( EvaluatorOption.class.equals( option ) ) {
+ return this.evaluatorRegistry.keySet();
+ }
+ return null;
+ }
public <T extends KnowledgeBuilderOption> void setOption(T option) {
if ( option instanceof DefaultDialectOption ) {
@@ -637,4 +648,5 @@
setClassLoaderCacheEnabled( ((ClassLoaderCacheOption) option).isClassLoaderCacheEnabled() );
}
}
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/builder/KnowledgeBuilderConfigurationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/builder/KnowledgeBuilderConfigurationTest.java 2010-09-21 06:03:49 UTC (rev 35203)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/builder/KnowledgeBuilderConfigurationTest.java 2010-09-21 07:01:20 UTC (rev 35204)
@@ -21,6 +21,8 @@
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Set;
import junit.framework.TestCase;
@@ -74,6 +76,8 @@
// checking the type safe getOption() method
assertEquals( DefaultDialectOption.get( "java" ),
config.getOption( DefaultDialectOption.class ) );
+ assertEquals( "DefaultDialectOption( name=java )",
+ config.getOption( DefaultDialectOption.class ).toString() );
// checking string conversion
assertEquals( "java",
config.getOption( DefaultDialectOption.class ).getName() );
@@ -83,6 +87,7 @@
}
public void testAccumulateFunctionConfiguration() {
+ Set<String> keySet = new HashSet<String>();
// in this use case, the application already has the instance of the accumulate function
AccumulateFunction function = new AverageAccumulateFunction();
@@ -103,6 +108,9 @@
// checking the string based getProperty() method
assertEquals( AverageAccumulateFunction.class.getName(),
config.getProperty( AccumulateFunctionOption.PROPERTY_NAME+"avg" ) );
+ // check the key set
+ keySet.add( "avg" );
+ assertTrue( config.getOptionKeys(AccumulateFunctionOption.class).contains( "avg" ) );
// wiring the accumulate function using the string based setProperty() method
config.setProperty( AccumulateFunctionOption.PROPERTY_NAME+"maximum",
@@ -120,6 +128,7 @@
// checking the string based getProperty() method
assertEquals( MaxAccumulateFunction.class.getName(),
config.getProperty( AccumulateFunctionOption.PROPERTY_NAME+"maximum" ) );
+ keySet.add( "avg" );
// wiring the inner class accumulate function using the string based setProperty() method
config.setProperty( AccumulateFunctionOption.PROPERTY_NAME+"inner",
@@ -137,6 +146,12 @@
// checking the string based getProperty() method
assertEquals( InnerAccumulateFuncion.class.getName(),
config.getProperty( AccumulateFunctionOption.PROPERTY_NAME+"inner" ) );
+ keySet.add( "avg" );
+
+ assertTrue( config.getOptionKeys(AccumulateFunctionOption.class).containsAll( keySet ) );
+ for( String key: config.getOptionKeys(AccumulateFunctionOption.class ) ){
+ System.out.println( key + "->" + config.getOption(AccumulateFunctionOption.class, key).getClass().getName() );
+ }
}
public void testDumpDirectoryConfiguration() {
@@ -271,7 +286,7 @@
public static class InnerAccumulateFuncion implements AccumulateFunction {
public void accumulate(Serializable context,
- Object value) {
+ Object... values) {
}
public Serializable createContext() {
return null;
@@ -282,7 +297,7 @@
public void init(Serializable context) throws Exception {
}
public void reverse(Serializable context,
- Object value) throws Exception {
+ Object... values) throws Exception {
}
public boolean supportsReverse() {
return false;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorRegistry.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorRegistry.java 2010-09-21 06:03:49 UTC (rev 35203)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorRegistry.java 2010-09-21 07:01:20 UTC (rev 35204)
@@ -22,6 +22,7 @@
import java.io.ObjectOutput;
import java.util.HashMap;
import java.util.Map;
+import java.util.Set;
import org.drools.RuntimeDroolsException;
import org.drools.base.ValueType;
@@ -50,7 +51,7 @@
public EvaluatorRegistry() {
this( null );
}
-
+
/**
* Creates a new EvaluatorRegistry using the given classloader to load
* the evaluator definition classes.
@@ -90,6 +91,14 @@
this.addEvaluatorDefinition( new CoincidesEvaluatorDefinition() );
}
+ /**
+ * Return the set of registered keys.
+ * @return a Set of Strings
+ */
+ public Set<String> keySet(){
+ return evaluators.keySet();
+ }
+
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
evaluators = (Map<String, EvaluatorDefinition>)in.readObject();
if (in instanceof DroolsObjectInput) {
More information about the jboss-svn-commits
mailing list