[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