package org.docbag.expression.parser;
import org.docbag.expression.RuntimeExpressionFactory;
import org.docbag.expression.evaluator.SpELExpressionEvaluator;
import org.docbag.template.TemplatePatterns;
/**
* Default {@link RegExpExpressionParser} factory. It constructs the parser with the following attributes:
* <ul>
* <li>{@link TemplatePatterns#EXPRESSION_PATTERN} as an {@link org.docbag.expression.Expression} pattern</li>
* <li>{@link RuntimeExpressionFactory} as an {@link org.docbag.expression.Expression} object factory</li>
* <li>{@link SpELExpressionEvaluator} as an implementation of {@link org.docbag.expression.evaluator.ExpressionEvaluator}</li>
* </ul>
*
* @author Jakub Torbicki
*/
public class DefaultRegExpParserFactory implements ExpressionParserFactory<String, String> {
private static class ExpressionParserHolder {
public static final ExpressionParser<String, String> parser = new RegExpExpressionParser<String>(TemplatePatterns.EXPRESSION_PATTERN,
new RuntimeExpressionFactory<String, String>(new SpELExpressionEvaluator()));
}
public ExpressionParser<String, String> getParser() {
return ExpressionParserHolder.parser;
}
}