Example usage for org.apache.commons.jexl3 JexlEngine createScript

List of usage examples for org.apache.commons.jexl3 JexlEngine createScript

Introduction

In this page you can find the example usage for org.apache.commons.jexl3 JexlEngine createScript.

Prototype

public final JexlScript createScript(JexlInfo info, URL scriptUrl, String[] names) 

Source Link

Document

Creates a Script from a URL containing valid JEXL syntax.

Usage

From source file:org.everit.expression.jexl.JexlExpressionCompiler.java

@Override
public CompiledExpression compile(final String expression, final ParserConfiguration parserConfiguration) {

    if (parserConfiguration == null) {
        throw new IllegalArgumentException("Parser configuration must be defined");
    }//from  www . j  a v  a 2s  .c o  m

    JexlInfo jexlInfo = new JexlInfo(parserConfiguration.getName(), parserConfiguration.getStartRow(),
            parserConfiguration.getStartColumn());
    String[] parameterNames = null;
    if (parserConfiguration.getVariableTypes() != null) {
        Set<String> parameterSet = parserConfiguration.getVariableTypes().keySet();
        parameterNames = parameterSet.toArray(new String[parameterSet.size()]);
    }

    JexlEngine jexlEngine = new JexlBuilder().silent(false).debug(true)
            .loader(parserConfiguration.getClassLoader()).arithmetic(new CustomizedJexlArithmetic(true))
            .create();

    JexlScript script = jexlEngine.createScript(jexlInfo, expression, parameterNames);
    return new JexlCompiledExpression(script);
}