You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ru...@apache.org on 2010/05/08 08:26:01 UTC

svn commit: r942317 - /synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EvaluatorFactoryFinder.java

Author: ruwan
Date: Sat May  8 06:26:01 2010
New Revision: 942317

URL: http://svn.apache.org/viewvc?rev=942317&view=rev
Log:
Adding a convinient method to the eval facotry finder to directly get the Evaluator

Modified:
    synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EvaluatorFactoryFinder.java

Modified: synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EvaluatorFactoryFinder.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EvaluatorFactoryFinder.java?rev=942317&r1=942316&r2=942317&view=diff
==============================================================================
--- synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EvaluatorFactoryFinder.java (original)
+++ synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EvaluatorFactoryFinder.java Sat May  8 06:26:01 2010
@@ -19,12 +19,20 @@
 
 package org.apache.synapse.commons.evaluators.config;
 
+import org.apache.axiom.om.OMElement;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.synapse.commons.evaluators.Evaluator;
 import org.apache.synapse.commons.evaluators.EvaluatorConstants;
+import org.apache.synapse.commons.evaluators.EvaluatorException;
 
 import java.util.Map;
 import java.util.HashMap;
 
-public class EvaluatorFactoryFinder {       
+public class EvaluatorFactoryFinder {
+
+    private static final Log log = LogFactory.getLog(EvaluatorFactoryFinder.class);
+
     private static final EvaluatorFactoryFinder finder = new EvaluatorFactoryFinder();
 
     private Map<String, EvaluatorFactory> factories = new HashMap<String, EvaluatorFactory>();
@@ -45,4 +53,21 @@ public class EvaluatorFactoryFinder {   
         return factories.get(name);
     }
 
+    public Evaluator getEvaluator(OMElement elem) throws EvaluatorException {
+        
+        EvaluatorFactory fac = findEvaluatorFactory(elem.getLocalName());
+        if (fac == null) {
+            handleException("Invalid configuration element: " + elem.getLocalName());
+        } else {
+            return fac.create(elem);
+        }
+
+        return null;
+    }
+
+    private void handleException(String message) throws EvaluatorException {
+        log.error(message);
+        throw new EvaluatorException(message);
+    }
+
 }