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

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

Author: supun
Date: Tue May 11 09:26:39 2010
New Revision: 943062

URL: http://svn.apache.org/viewvc?rev=943062&view=rev
Log:
adding serializers to evaluators

Added:
    synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/AbstractEvaluatorSerializer.java
    synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/AndSerializer.java
    synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/ConditionSerializer.java
    synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EqualSerializer.java
    synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EvaluatorSerializer.java
    synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EvaluatorSerializerFinder.java
    synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/MatchSerializer.java
    synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/NotSerializer.java
    synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/OrSerializer.java
Modified:
    synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/AndEvaluator.java
    synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/EqualEvaluator.java
    synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/NotEvaluator.java
    synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/OrEvaluator.java

Modified: synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/AndEvaluator.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/AndEvaluator.java?rev=943062&r1=943061&r2=943062&view=diff
==============================================================================
--- synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/AndEvaluator.java (original)
+++ synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/AndEvaluator.java Tue May 11 09:26:39 2010
@@ -49,6 +49,10 @@ public class AndEvaluator implements Eva
     public void setEvaluators(Evaluator[] evaluators) {
         this.evaluators = evaluators;
     }
+
+    public Evaluator[] getEvaluators() {
+        return evaluators;
+    }
 }
 
 

Modified: synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/EqualEvaluator.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/EqualEvaluator.java?rev=943062&r1=943061&r2=943062&view=diff
==============================================================================
--- synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/EqualEvaluator.java (original)
+++ synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/EqualEvaluator.java Tue May 11 09:26:39 2010
@@ -37,7 +37,7 @@ public class EqualEvaluator implements E
 
     private String source = null;
 
-    private int type = 0;
+    private int type = 3;
 
     public boolean evaluate(EvaluatorContext context) throws EvaluatorException {
         String sourceText = null;
@@ -74,6 +74,18 @@ public class EqualEvaluator implements E
         this.type = type;
     }
 
+    public String getValue() {
+        return value;
+    }
+
+    public String getSource() {
+        return source;
+    }
+
+    public int getType() {
+        return type;
+    }
+
     private void handleException(String message) throws EvaluatorException {
         log.error(message);
         throw new EvaluatorException(message);

Modified: synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/NotEvaluator.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/NotEvaluator.java?rev=943062&r1=943061&r2=943062&view=diff
==============================================================================
--- synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/NotEvaluator.java (original)
+++ synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/NotEvaluator.java Tue May 11 09:26:39 2010
@@ -43,4 +43,8 @@ public class NotEvaluator implements Eva
     public void setEvaluator(Evaluator evaluator) {
         this.evaluator = evaluator;
     }
+
+    public Evaluator getEvaluator() {
+        return evaluator;
+    }
 }

Modified: synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/OrEvaluator.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/OrEvaluator.java?rev=943062&r1=943061&r2=943062&view=diff
==============================================================================
--- synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/OrEvaluator.java (original)
+++ synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/OrEvaluator.java Tue May 11 09:26:39 2010
@@ -49,4 +49,8 @@ public class OrEvaluator implements Eval
     public void setEvaluators(Evaluator[] evaluators) {
         this.evaluators = evaluators;
     }
+
+    public Evaluator[] getEvaluators() {
+        return evaluators;
+    }
 }

Added: synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/AbstractEvaluatorSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/AbstractEvaluatorSerializer.java?rev=943062&view=auto
==============================================================================
--- synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/AbstractEvaluatorSerializer.java (added)
+++ synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/AbstractEvaluatorSerializer.java Tue May 11 09:26:39 2010
@@ -0,0 +1,59 @@
+package org.apache.synapse.commons.evaluators.config;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.synapse.commons.evaluators.Evaluator;
+import org.apache.synapse.commons.evaluators.EvaluatorException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * Provide common methods for serializers
+ */
+public abstract class AbstractEvaluatorSerializer implements EvaluatorSerializer {
+    protected static Log log;
+
+    protected static final OMFactory fac = OMAbstractFactory.getOMFactory();
+
+    protected static final OMNamespace nullNS = fac.createOMNamespace("", "");
+    
+    /**
+     * A constructor that makes subclasses pick up the correct logger
+     */
+    protected AbstractEvaluatorSerializer() {
+        log = LogFactory.getLog(this.getClass());
+    }
+
+    protected void serializeChildren(OMElement parent, Evaluator[] childEvaluators)
+            throws EvaluatorException {
+        for (Evaluator evaluator : childEvaluators) {
+            String name = evaluator.getName();
+
+            EvaluatorSerializer serializer = EvaluatorSerializerFinder.
+                    getInstance().getSerializer(name);
+
+            if (serializer != null) {
+                serializer.serialize(parent, evaluator);
+            } else {
+                String msg = "Couldn't find the serializer for evaliator: " + name;
+                log.error(msg);
+                throw new EvaluatorException(msg);
+            }
+        }
+    }
+
+    protected void serializeChild(OMElement parenet, Evaluator child) throws EvaluatorException {
+        EvaluatorSerializer serializer =
+                EvaluatorSerializerFinder.getInstance().getSerializer(child.getName());
+
+        if (serializer != null) {
+            serializer.serialize(parenet, child);
+        } else {
+            String msg = "Couldn't find the serializer for evaliator: " + child.getName();
+            log.error(msg);
+            throw new EvaluatorException(msg);
+        }
+    }
+}

Added: synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/AndSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/AndSerializer.java?rev=943062&view=auto
==============================================================================
--- synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/AndSerializer.java (added)
+++ synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/AndSerializer.java Tue May 11 09:26:39 2010
@@ -0,0 +1,47 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.synapse.commons.evaluators.config;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.synapse.commons.evaluators.Evaluator;
+import org.apache.synapse.commons.evaluators.AndEvaluator;
+import org.apache.synapse.commons.evaluators.EvaluatorConstants;
+import org.apache.synapse.commons.evaluators.EvaluatorException;
+
+import javax.xml.namespace.QName;
+
+public class AndSerializer extends AbstractEvaluatorSerializer {    
+    public OMElement serialize(OMElement parent, Evaluator evaluator) throws EvaluatorException {        
+        if (!(evaluator instanceof AndEvaluator)) {           
+            throw new IllegalArgumentException("Evalutor should be a AndEvalutor");
+        }
+
+        AndEvaluator andEvaluator = (AndEvaluator) evaluator;
+
+        OMElement andElement = fac.createOMElement(new QName((EvaluatorConstants.AND)));
+        serializeChildren(andElement, andEvaluator.getEvaluators());
+
+        if (parent != null) {
+            parent.addChild(andElement);
+        }
+        
+        return andElement;
+    }
+}

Added: synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/ConditionSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/ConditionSerializer.java?rev=943062&view=auto
==============================================================================
--- synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/ConditionSerializer.java (added)
+++ synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/ConditionSerializer.java Tue May 11 09:26:39 2010
@@ -0,0 +1,67 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.synapse.commons.evaluators.config;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.om.OMElement;
+import org.apache.synapse.commons.evaluators.Condition;
+import org.apache.synapse.commons.evaluators.EvaluatorConstants;
+import org.apache.synapse.commons.evaluators.EvaluatorException;
+
+import javax.xml.namespace.QName;
+
+public class ConditionSerializer {
+    private static Log log = LogFactory.getLog(ConditionSerializer.class);
+
+    private static final OMFactory fac = OMAbstractFactory.getOMFactory();
+
+    private static final OMNamespace nullNS = fac.createOMNamespace("", "");
+
+    public OMElement serializer(OMElement parent, Condition condition) throws EvaluatorException {
+        OMElement conditionElement = fac.createOMElement(new QName(EvaluatorConstants.CONDITION));
+
+        conditionElement.addAttribute(
+                fac.createOMAttribute(EvaluatorConstants.PRIORITY, nullNS,
+                        condition.getPriority() + ""));
+
+        EvaluatorSerializer serializer =
+                EvaluatorSerializerFinder.getInstance().getSerializer(
+                        condition.getEvaluator().getName());
+
+        if (serializer != null) {
+            serializer.serialize(conditionElement, condition.getEvaluator());
+        } else {
+            String msg = "Couldn't find the serializer for evaliator: " +
+                    condition.getEvaluator().getName();
+            log.error(msg);
+            throw new EvaluatorException(msg);
+        }
+
+        if (parent != null) {
+            parent.addChild(conditionElement);
+        }
+
+        return conditionElement;
+    }
+}

Added: synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EqualSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EqualSerializer.java?rev=943062&view=auto
==============================================================================
--- synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EqualSerializer.java (added)
+++ synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EqualSerializer.java Tue May 11 09:26:39 2010
@@ -0,0 +1,63 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.synapse.commons.evaluators.config;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.synapse.commons.evaluators.*;
+
+import javax.xml.namespace.QName;
+
+public class EqualSerializer extends AbstractEvaluatorSerializer{
+    public OMElement serialize(OMElement parent, Evaluator evaluator) throws EvaluatorException {
+        if (!(evaluator instanceof EqualEvaluator)) {
+            throw new IllegalArgumentException("Evalutor should be a EqualEvalutor");
+        }
+
+        EqualEvaluator equalEvaluator = (EqualEvaluator) evaluator;
+        OMElement matchElement = fac.createOMElement(new QName(EvaluatorConstants.EQUAL));
+
+        matchElement.addAttribute(fac.createOMAttribute(EvaluatorConstants.SOURCE, nullNS,
+                equalEvaluator.getSource()));
+
+        if (equalEvaluator.getType() == 1) {
+            matchElement.addAttribute(fac.createOMAttribute(EvaluatorConstants.TYPE, nullNS,
+                    EvaluatorConstants.URL));
+        } else if (equalEvaluator.getType() == 2) {
+            matchElement.addAttribute(fac.createOMAttribute(EvaluatorConstants.TYPE, nullNS,
+                    EvaluatorConstants.PARAM));
+        } else if (equalEvaluator.getType() == 3) {
+            matchElement.addAttribute(fac.createOMAttribute(EvaluatorConstants.TYPE, nullNS,
+                    EvaluatorConstants.HEADER));
+        } else {
+            String msg = "Unsupported type value: " + equalEvaluator.getType();
+            log.error(msg);
+            throw new EvaluatorException(msg);
+        }
+
+        matchElement.addAttribute(fac.createOMAttribute(EvaluatorConstants.VALUE, nullNS,
+                equalEvaluator.getValue()));
+
+        if (parent != null) {
+            parent.addChild(matchElement);
+        }
+
+        return matchElement;
+    }
+}

Added: synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EvaluatorSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EvaluatorSerializer.java?rev=943062&view=auto
==============================================================================
--- synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EvaluatorSerializer.java (added)
+++ synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EvaluatorSerializer.java Tue May 11 09:26:39 2010
@@ -0,0 +1,38 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.synapse.commons.evaluators.config;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.synapse.commons.evaluators.Evaluator;
+import org.apache.synapse.commons.evaluators.EvaluatorException;
+
+public interface EvaluatorSerializer {
+
+    /**
+     * Serialze an Evaluator configuration to a XML element.
+     * @param parent if not null the serialize element will be added to the parent
+     * @param evaluator The <code>Evaluator</code> object to be serialized
+     * 
+     * @return <code>OMElement</code> containing the configuration
+     * @throws org.apache.synapse.commons.evaluators.EvaluatorException if an error
+     * occurs while serializing
+     */
+    OMElement serialize(OMElement parent, Evaluator evaluator) throws EvaluatorException;
+}

Added: synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EvaluatorSerializerFinder.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EvaluatorSerializerFinder.java?rev=943062&view=auto
==============================================================================
--- synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EvaluatorSerializerFinder.java (added)
+++ synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/EvaluatorSerializerFinder.java Tue May 11 09:26:39 2010
@@ -0,0 +1,42 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.synapse.commons.evaluators.config;
+
+import java.util.Map;
+import java.util.HashMap;
+
+public class EvaluatorSerializerFinder {
+    private static final EvaluatorSerializerFinder finder = new EvaluatorSerializerFinder();
+
+    private Map<String, EvaluatorSerializer> serializerMap =
+            new HashMap<String, EvaluatorSerializer>();
+
+    private EvaluatorSerializerFinder() {
+        serializerMap.put("and", new AndSerializer());
+    }
+
+    public static EvaluatorSerializerFinder getInstance() {
+        return finder;
+    }
+
+    public EvaluatorSerializer getSerializer(String name) {
+        return serializerMap.get(name);
+    }
+}

Added: synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/MatchSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/MatchSerializer.java?rev=943062&view=auto
==============================================================================
--- synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/MatchSerializer.java (added)
+++ synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/MatchSerializer.java Tue May 11 09:26:39 2010
@@ -0,0 +1,48 @@
+package org.apache.synapse.commons.evaluators.config;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.synapse.commons.evaluators.Evaluator;
+import org.apache.synapse.commons.evaluators.EvaluatorException;
+import org.apache.synapse.commons.evaluators.MatchEvaluator;
+import org.apache.synapse.commons.evaluators.EvaluatorConstants;
+
+import javax.xml.namespace.QName;
+
+public class MatchSerializer extends AbstractEvaluatorSerializer {
+
+    public OMElement serialize(OMElement parent, Evaluator evaluator) throws EvaluatorException {
+        if (!(evaluator instanceof MatchEvaluator)) {
+            throw new IllegalArgumentException("Evalutor should be a NotEvalutor");
+        }
+
+        MatchEvaluator matchEvaluator = (MatchEvaluator) evaluator;
+        OMElement matchElement = fac.createOMElement(new QName(EvaluatorConstants.EQUAL));
+
+        matchElement.addAttribute(fac.createOMAttribute(EvaluatorConstants.SOURCE, nullNS,
+                matchEvaluator.getSource()));
+
+        if (matchEvaluator.getType() == 1) {
+            matchElement.addAttribute(fac.createOMAttribute(EvaluatorConstants.TYPE, nullNS,
+                    EvaluatorConstants.URL));
+        } else if (matchEvaluator.getType() == 2) {
+            matchElement.addAttribute(fac.createOMAttribute(EvaluatorConstants.TYPE, nullNS,
+                    EvaluatorConstants.PARAM));
+        } else if (matchEvaluator.getType() == 3) {
+            matchElement.addAttribute(fac.createOMAttribute(EvaluatorConstants.TYPE, nullNS,
+                    EvaluatorConstants.HEADER));
+        } else {
+            String msg = "Unsupported type value: " + matchEvaluator.getType();
+            log.error(msg);
+            throw new EvaluatorException(msg);
+        }
+
+        matchElement.addAttribute(fac.createOMAttribute(EvaluatorConstants.REGEX, nullNS,
+                matchEvaluator.getRegex().toString()));
+
+        if (parent != null) {
+            parent.addChild(matchElement);
+        }
+
+        return matchElement;
+    }
+}

Added: synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/NotSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/NotSerializer.java?rev=943062&view=auto
==============================================================================
--- synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/NotSerializer.java (added)
+++ synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/NotSerializer.java Tue May 11 09:26:39 2010
@@ -0,0 +1,48 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.synapse.commons.evaluators.config;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.synapse.commons.evaluators.Evaluator;
+import org.apache.synapse.commons.evaluators.EvaluatorException;
+import org.apache.synapse.commons.evaluators.NotEvaluator;
+import org.apache.synapse.commons.evaluators.EvaluatorConstants;
+
+import javax.xml.namespace.QName;
+
+public class NotSerializer extends AbstractEvaluatorSerializer {
+
+    public OMElement serialize(OMElement parent, Evaluator evaluator) throws EvaluatorException {
+        if (!(evaluator instanceof NotEvaluator)) {
+            throw new IllegalArgumentException("Evalutor should be a NotEvalutor");
+        }
+
+        NotEvaluator notEvaluator = (NotEvaluator) evaluator;
+
+        OMElement notElement = fac.createOMElement(new QName(EvaluatorConstants.NOT));
+        serializeChild(notElement, notEvaluator.getEvaluator());
+
+        if (parent != null) {
+            parent.addChild(notElement);
+        }
+        
+        return notElement;
+    }
+}

Added: synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/OrSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/OrSerializer.java?rev=943062&view=auto
==============================================================================
--- synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/OrSerializer.java (added)
+++ synapse/trunk/java/modules/commons/src/main/java/org/apache/synapse/commons/evaluators/config/OrSerializer.java Tue May 11 09:26:39 2010
@@ -0,0 +1,47 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.synapse.commons.evaluators.config;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.synapse.commons.evaluators.Evaluator;
+import org.apache.synapse.commons.evaluators.OrEvaluator;
+import org.apache.synapse.commons.evaluators.EvaluatorException;
+import org.apache.synapse.commons.evaluators.EvaluatorConstants;
+
+import javax.xml.namespace.QName;
+
+public class OrSerializer extends AbstractEvaluatorSerializer {
+    public OMElement serialize(OMElement parent, Evaluator evaluator) throws EvaluatorException {
+        if (!(evaluator instanceof OrEvaluator)) {
+            throw new IllegalArgumentException("Evalutor should be a OrEvalutor");
+        }
+
+        OrEvaluator orEvaluator = (OrEvaluator) evaluator;
+
+        OMElement orElement = fac.createOMElement(new QName((EvaluatorConstants.OR)));
+        serializeChildren(orElement, orEvaluator.getEvaluators());
+
+        if (parent != null) {
+            parent.addChild(orElement);
+        }
+
+        return orElement;
+    }
+}