# MatchSerializer.java

    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;

    /**
     * Serialize the {@link MatchEvaluator} to the XML configuration defined in
     * the {@link MatchFactory}.
     */
    public class MatchSerializer extends TextProcessingEvaluatorSerializer {

        public OMElement serialize(OMElement parent, Evaluator evaluator) throws EvaluatorException {
            if (!(evaluator instanceof MatchEvaluator)) {
                throw new IllegalArgumentException("Evalutor must be a NotEvalutor");
            }

            MatchEvaluator matchEvaluator = (MatchEvaluator) evaluator;
            OMElement matchElement = fac.createOMElement(EvaluatorConstants.MATCH,EvaluatorConstants.SYNAPSE_NAMESPACE, EvaluatorConstants.EMPTY_PREFIX);
            serializeSourceTextRetriever(matchEvaluator.getTextRetriever(), matchElement);

            matchElement.addAttribute(fac.createOMAttribute(EvaluatorConstants.REGEX, nullNS,
                    matchEvaluator.getRegex().toString()));

            if (parent != null) {
                parent.addChild(matchElement);
            }

            return matchElement;
        }
    }