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;
}
}