Package org.mvel2
Class MVEL
java.lang.Object
org.mvel2.MVEL
The MVEL convienence class is a collection of static methods that provides a set of easy integration points for
MVEL. The vast majority of MVEL's core functionality can be directly accessed through methods in this class.
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic voidanalysisCompile(char[] expression, ParserContext ctx) Performs an analysis compileShared, which will populate the ParserContext with type, input and variable information, but will not produce a payload.static voidanalysisCompile(String expression, ParserContext ctx) static Classanalyze(char[] expression, ParserContext ctx) static Classanalyze(String expression, ParserContext ctx) static SerializablecompileExpression(char[] expression) static SerializablecompileExpression(char[] expression, int start, int offset, ParserContext ctx) static SerializablecompileExpression(char[] expression, Map<String, Object> imports) static SerializablecompileExpression(char[] expression, Map<String, Object> imports, Map<String, Interceptor> interceptors) static SerializablecompileExpression(char[] expression, Map<String, Object> imports, Map<String, Interceptor> interceptors, String sourceName) Compiles an expression and returns a Serializable object containing the compiled expression.static SerializablecompileExpression(char[] expression, ParserContext ctx) static SerializablecompileExpression(String expression) Compiles an expression and returns a Serializable object containing the compiled expression.static SerializablecompileExpression(String expression, Map<String, Object> imports) Compiles an expression and returns a Serializable object containing the compiled expression.static SerializablecompileExpression(String expression, Map<String, Object> imports, Map<String, Interceptor> interceptors) Compiles an expression and returns a Serializable object containing the compiled expression.static SerializablecompileExpression(String expression, Map<String, Object> imports, Map<String, Interceptor> interceptors, String sourceName) static SerializablecompileExpression(String expression, ParserContext ctx) Compiles an expression, and accepts aParserContextinstance.static SerializablecompileGetExpression(char[] expression) static SerializablecompileGetExpression(char[] expression, ParserContext ctx) static SerializablecompileGetExpression(String expression) static SerializablecompileGetExpression(String expression, ParserContext ctx) static SerializablecompileSetExpression(char[] expression) static SerializablecompileSetExpression(char[] expression, int start, int offset, ParserContext ctx) static SerializablecompileSetExpression(char[] expression, Class ingressType, ParserContext ctx) static SerializablecompileSetExpression(char[] expression, ParserContext ctx) static SerializablecompileSetExpression(String expression) static SerializablecompileSetExpression(String expression, Class ingressType, ParserContext ctx) static SerializablecompileSetExpression(String expression, ParserContext ctx) static Objecteval(char[] expression) Evaluate an expression and return the value.static Objecteval(char[] expression, int start, int offset, Object ctx, VariableResolverFactory vars) static <T> Teval(char[] expression, int start, int offset, Object ctx, VariableResolverFactory vars, Class<T> toType) static <T> Tstatic ObjectEvaluate an expression against a context object and return the valuestatic <T> TEvaluate an expression with a context object and return the value.static ObjectEvaluate an expression against a context object and return the valuestatic <T> TEvaluate an expression with a context object and injected variables and return the value.static Objecteval(char[] expression, Object ctx, VariableResolverFactory vars) Evaluate an expression against a context object and return the valuestatic <T> Teval(char[] expression, Object ctx, VariableResolverFactory vars, Class<T> toType) Evaluate an expression with a context object and injected variables and return the value.static <T> TEvaluate an expression with injected variables and return the resultant value.static <T> Teval(char[] expression, VariableResolverFactory vars, Class<T> toType) Evaluate an expression with injected variables and return the value.static ObjectEvaluate an expression and return the value.static <T> TEvaluates an expression and, if necessary, coerces the resultant value to the specified type.static ObjectEvaluate an expression against a context object.static <T> TEvaluates an expression against a context object and, if necessary, coerces the resultant value to the specified type.static ObjectEvaluates an expression against a context object and externally injected variables.static <T> TEvaluates an expression against a context object and externally injected variables.static Objecteval(String expression, Object ctx, VariableResolverFactory resolverFactory) Evaluates an expression against a context object and injected variables from aVariableResolverFactory.static <T> Teval(String expression, Object ctx, VariableResolverFactory vars, Class<T> toType) Evaluates an expression against a context object and externally injected variables.static ObjectEvaluates an expression against externally injected variables.static <T> TEvaluates an expression against externally injected variables.static Objecteval(String expression, VariableResolverFactory resolverFactory) Evaluate an expression with externally injected variables via aVariableResolverFactory.static <T> Teval(String expression, VariableResolverFactory vars, Class<T> toType) Evaluates an expression against externally injected variables and, if necessary, coerces the resultant value to the specified type.static ObjectEvaluate a script from a file and return the resultant value.static ObjectEvaluate a script from a file, against a context object and return the resultant value.static ObjectEvaluate a script from a file with injected variables and a context object, then return the resultant value.static ObjectevalFile(File file, Object ctx, VariableResolverFactory vars) Evaluate a script from a file with injected variables and a context object, then return the resultant value.static Objectstatic Objectstatic Objectstatic ObjectevalFile(File file, String encoding, Object ctx, VariableResolverFactory vars) static ObjectEvaluate a script from a file with injected variables and return the resultant value.static BooleanevalToBoolean(String expression, Object ctx) Evaluate an expression in Boolean-only mode against a root context object.static BooleanEvaluate an expression in Boolean-only mode against a root context object and injected variables.static BooleanevalToBoolean(String expression, Object ctx, VariableResolverFactory vars) Evaluate an expression in Boolean-only mode against a root context object and injected variables.static BooleanevalToBoolean(String expression, Map<String, Object> vars) Evaluate an expression in Boolean-only with injected variables.static BooleanevalToBoolean(String expression, VariableResolverFactory vars) Evaluate an expression in Boolean-only with injected variables.static StringevalToString(String expression) Evaluates an expression and returns the resultant value as a String.static StringevalToString(String expression, Object ctx) Evaluates an expression and returns the resultant value as a String.static StringevalToString(String expression, Object ctx, Map vars) Evaluates an expression and returns the resultant value as a String.static StringevalToString(String expression, Object ctx, VariableResolverFactory vars) Evaluates an expression and returns the resultant value as a String.static StringevalToString(String expression, Map vars) Evaluates an expression and returns the resultant value as a String.static StringevalToString(String expression, VariableResolverFactory vars) Evaluates an expression and returns the resultant value as a String.static Object[]executeAllExpression(Serializable[] compiledExpressions, Object ctx, VariableResolverFactory vars) static ObjectexecuteDebugger(CompiledExpression expression, Object ctx, VariableResolverFactory vars) static voidexecuteExpression(Iterable<CompiledExpression> compiledExpression) static voidexecuteExpression(Iterable<CompiledExpression> compiledExpression, Object ctx) static voidexecuteExpression(Iterable<CompiledExpression> compiledExpression, Object ctx, Map vars) static voidexecuteExpression(Iterable<CompiledExpression> compiledExpression, Object ctx, VariableResolverFactory vars) static voidexecuteExpression(Iterable<CompiledExpression> compiledExpression, Map vars) static ObjectexecuteExpression(Object compiledExpression) static ObjectexecuteExpression(Object compiledExpression, Object ctx) Executes a compiled expression.static <T> TexecuteExpression(Object compiledExpression, Object ctx, Class<T> toType) Execute a compiled expression and convert the result to a type.static ObjectexecuteExpression(Object compiledExpression, Object ctx, Map vars) Executes a compiled expression.static <T> TexecuteExpression(Object compiledExpression, Object ctx, Map vars, Class<T> toType) Execute a compiled expression and convert the result to a typestatic ObjectexecuteExpression(Object compiledExpression, Object ctx, VariableResolverFactory resolverFactory) static <T> TexecuteExpression(Object compiledExpression, Object ctx, VariableResolverFactory vars, Class<T> toType) static ObjectexecuteExpression(Object compiledExpression, Map vars) Executes a compiled expression.static <T> TexecuteExpression(Object compiledExpression, Map vars, Class<T> toType) Execute a compiled expression and convert the result to a typestatic ObjectexecuteExpression(Object compiledExpression, VariableResolverFactory factory) Executes a compiled expression.static voidexecuteSetExpression(Serializable compiledSet, Object ctx, Object value) static voidexecuteSetExpression(Serializable compiledSet, Object ctx, VariableResolverFactory vrf, Object value) static ObjectexecuteTbExpression(Object compiledExpression, ExecutionContext ctx, Map vars) static Stringstatic ObjectgetProperty(String property, Object ctx) static MethodgetStaticMethod(Class cls, String methodName, Class[] signature) A simple utility method to get a static method from a class with no checked exception.static booleanstatic booleanstatic StringparseMacros(String input, Map<String, Macro> macros) static Stringpreprocess(char[] input, PreProcessor[] preprocessors) static Stringpreprocess(String input, PreProcessor[] preprocessors) static voidsetProperty(Object ctx, String property, Object value)
-
Field Details
-
NAME
- See Also:
-
VERSION
- See Also:
-
VERSION_SUB
- See Also:
-
CODENAME
- See Also:
-
INVOKED_METHOD_EXCEPTIONS_BUBBLE
public static boolean INVOKED_METHOD_EXCEPTIONS_BUBBLE -
COMPILER_OPT_ALLOW_NAKED_METH_CALL
public static boolean COMPILER_OPT_ALLOW_NAKED_METH_CALL -
COMPILER_OPT_ALLOW_OVERRIDE_ALL_PROPHANDLING
public static boolean COMPILER_OPT_ALLOW_OVERRIDE_ALL_PROPHANDLING -
COMPILER_OPT_ALLOW_RESOLVE_INNERCLASSES_WITH_DOTNOTATION
public static boolean COMPILER_OPT_ALLOW_RESOLVE_INNERCLASSES_WITH_DOTNOTATION -
COMPILER_OPT_SUPPORT_JAVA_STYLE_CLASS_LITERALS
public static boolean COMPILER_OPT_SUPPORT_JAVA_STYLE_CLASS_LITERALS -
COMPILER_OPT_ALLOCATE_TYPE_LITERALS_TO_SHARED_SYMBOL_TABLE
public static boolean COMPILER_OPT_ALLOCATE_TYPE_LITERALS_TO_SHARED_SYMBOL_TABLE -
RUNTIME_OPT_THREAD_UNSAFE
public static boolean RUNTIME_OPT_THREAD_UNSAFE
-
-
Method Details
-
isAdvancedDebugging
public static boolean isAdvancedDebugging() -
getDebuggingOutputFileName
-
isFileDebugging
public static boolean isFileDebugging() -
eval
Evaluate an expression and return the value.- Parameters:
expression- A String containing the expression to be evaluated.- Returns:
- the resultant value
-
eval
Evaluate an expression against a context object. Expressions evaluated against a context object are designed to treat members of that context object as variables in the expression. For example:
In this case, the identifier foo would be resolved against the ctx object. So it would have the equivalent of: ctc.getFoo() == 1 in Java.MVEL.eval("foo == 1", ctx);- Parameters:
expression- A String containing the expression to be evaluated.ctx- The context object to evaluate against.- Returns:
- The resultant value
-
eval
Evaluate an expression with externally injected variables via aVariableResolverFactory. A factory provides the means by which MVEL can resolve external variables. MVEL contains a straight-forward implementation for wrapping Maps:MapVariableResolverFactory, which is used implicitly when calling overloaded methods in this class that use Maps. An example:Map varsMap = new HashMap(); varsMap.put("x", 5); varsMap.put("y", 2); VariableResolverFactory factory = new MapVariableResolverFactory(varsMap); Integer i = (Integer) MVEL.eval("x * y", factory); assert i == 10;- Parameters:
expression- A String containing the expression to be evaluated.resolverFactory- The instance of the VariableResolverFactory to be used.- Returns:
- The resultant value.
-
eval
Evaluates an expression against a context object and injected variables from aVariableResolverFactory. This method of execution will prefer to find variables from the factory and then from the context.- Parameters:
expression- A string containing the expression to be evaluatedctx- The context object to evaluate against.resolverFactory- The instance of the VariableResolverFactory to be used.- Returns:
- The resultant value
- See Also:
-
eval
Evaluates an expression against externally injected variables. This is a wrapper convenience method which wraps the provided Map of vars in aMapVariableResolverFactory- Parameters:
expression- A string containing the expression to be evaluated.vars- A map of vars to be injected- Returns:
- The resultant value
- See Also:
-
eval
Evaluates an expression against a context object and externally injected variables. This is a wrapper convenience method which wraps the provided Map of vars in aMapVariableResolverFactory- Parameters:
expression- A string containing the expression to be evaluated.ctx- The context object to evaluate against.vars- A map of vars to be injected- Returns:
- The resultant value
- See Also:
-
eval
Evaluates an expression and, if necessary, coerces the resultant value to the specified type. Example:
This converts an expression that would otherwise return an Integer to a Float.Float output = MVEL.eval("5 + 5", Float.class);- Type Parameters:
T- type- Parameters:
expression- A string containing the expression to be evaluated.toType- The target type that the resultant value will be converted to, if necessary.- Returns:
- The resultant value.
-
eval
Evaluates an expression against a context object and, if necessary, coerces the resultant value to the specified type.- Type Parameters:
T- type- Parameters:
expression- A string containing the expression to be evaluated.ctx- The context object to evaluate against.toType- The target type that the resultant value will be converted to, if necessary.- Returns:
- The resultant value
- See Also:
-
eval
Evaluates an expression against externally injected variables and, if necessary, coerces the resultant value to the specified type.- Type Parameters:
T- type- Parameters:
expression- A string containing the expression to be evaluatedvars- The variables to be injectedtoType- The target type that the resultant value will be converted to, if necessary.- Returns:
- The resultant value
- See Also:
-
eval
Evaluates an expression against externally injected variables. The resultant value is coerced to the specified type if necessary. This is a wrapper convenience method which wraps the provided Map of vars in aMapVariableResolverFactory- Type Parameters:
T- type- Parameters:
expression- A string containing the expression to be evaluated.vars- A map of vars to be injectedtoType- The target type the resultant value will be converted to, if necessary.- Returns:
- The resultant value
- See Also:
-
eval
public static <T> T eval(String expression, Object ctx, VariableResolverFactory vars, Class<T> toType) Evaluates an expression against a context object and externally injected variables. If necessary, the resultant value is coerced to the specified type.- Type Parameters:
T- type- Parameters:
expression- A string containing the expression to be evaluated.ctx- The context object to evaluate againstvars- The vars to be injectedtoType- The target type that the resultant value will be converted to, if necessary.- Returns:
- The resultant value.
- See Also:
-
eval
Evaluates an expression against a context object and externally injected variables. If necessary, the resultant value is coerced to the specified type.- Type Parameters:
T- type- Parameters:
expression- A string containing the expression to be evaluated.ctx- The context object to evaluate againstvars- A Map of variables to be injected.toType- The target type that the resultant value will be converted to, if necessary.- Returns:
- The resultant value.
- See Also:
-
evalToString
Evaluates an expression and returns the resultant value as a String.- Parameters:
expression- A string containing the expressino to be evaluated.- Returns:
- The resultant value
-
evalToString
Evaluates an expression and returns the resultant value as a String.- Parameters:
expression- A string containing the expressino to be evaluated.ctx- The context object to evaluate against- Returns:
- The resultant value
- See Also:
-
evalToString
Evaluates an expression and returns the resultant value as a String.- Parameters:
expression- A string containing the expressino to be evaluated.vars- The variables to be injected- Returns:
- The resultant value
- See Also:
-
evalToString
Evaluates an expression and returns the resultant value as a String.- Parameters:
expression- A string containing the expressino to be evaluated.vars- A Map of variables to be injected- Returns:
- The resultant value
- See Also:
-
evalToString
Evaluates an expression and returns the resultant value as a String.- Parameters:
expression- A string containing the expressino to be evaluated.ctx- The context object to evaluate against.vars- The variables to be injected- Returns:
- The resultant value
- See Also:
-
evalToString
Evaluates an expression and returns the resultant value as a String.- Parameters:
expression- A string containing the expressino to be evaluated.ctx- The context object to evaluate against.vars- A Map of variables to be injected- Returns:
- The resultant value
- See Also:
-
eval
Evaluate an expression and return the value.- Parameters:
expression- A char[] containing the expression to be evaluated.- Returns:
- The resultant value
- See Also:
-
eval
Evaluate an expression against a context object and return the value- Parameters:
expression- A char[] containing the expression to be evaluated.ctx- The context object to evaluate against- Returns:
- The resultant value
- See Also:
-
eval
-
eval
Evaluate an expression against a context object and return the value- Parameters:
expression- A char[] containing the expression to be evaluated.ctx- The context object to evaluate againstvars- The variables to be injected- Returns:
- The resultant value
- See Also:
-
eval
public static Object eval(char[] expression, int start, int offset, Object ctx, VariableResolverFactory vars) -
eval
public static <T> T eval(char[] expression, int start, int offset, Object ctx, VariableResolverFactory vars, Class<T> toType) -
eval
Evaluate an expression against a context object and return the value- Parameters:
expression- A char[] containing the expression to be evaluated.ctx- The context object to evaluate againstvars- A Map of variables to be injected- Returns:
- The resultant value
- See Also:
-
eval
Evaluate an expression with a context object and injected variables and return the value. If necessary convert the resultant value to the specified type.- Type Parameters:
T- type- Parameters:
expression- A char[] containing the expression to be evaluated.ctx- The context object to evaluate againstvars- A Map of variables to be injectedtoType- The target type the resultant value will be converted to, if necessary.- Returns:
- The resultant value
- See Also:
-
eval
Evaluate an expression with a context object and return the value. If necessary convert the resultant value to the specified type.- Type Parameters:
T- type- Parameters:
expression- A char[] containing the expression to be evaluated.ctx- The context object to evaluate againsttoType- The target type the resultant value will be converted to, if necessary.- Returns:
- The resultant value
- See Also:
-
eval
public static <T> T eval(char[] expression, Object ctx, VariableResolverFactory vars, Class<T> toType) Evaluate an expression with a context object and injected variables and return the value. If necessary convert the resultant value to the specified type.- Type Parameters:
T- type- Parameters:
expression- A char[] containing the expression to be evaluated.ctx- The context object to evaluate againstvars- The variables to be injectedtoType- The target type the resultant value will be converted to, if necessary.- Returns:
- The resultant value
- See Also:
-
eval
Evaluate an expression with injected variables and return the value. If necessary convert the resultant value to the specified type.- Type Parameters:
T- type- Parameters:
expression- A char[] containing the expression to be evaluated.vars- The variables to be injectedtoType- The target type the resultant value will be converted to, if necessary.- Returns:
- The resultant value
- See Also:
-
eval
Evaluate an expression with injected variables and return the resultant value. If necessary convert the resultant value to the specified type.- Type Parameters:
T- type- Parameters:
expression- A char[] containing the expression to be evaluated.vars- The variables to be injectedtoType- The target type the resultant value will be converted to, if necessary.- Returns:
- The resultant value
- See Also:
-
evalFile
Evaluate a script from a file and return the resultant value.- Parameters:
file- The file to process- Returns:
- The resultant value
- Throws:
IOException- Exception thrown if there is an IO problem accessing the file.
-
evalFile
- Throws:
IOException
-
evalFile
Evaluate a script from a file, against a context object and return the resultant value.- Parameters:
file- The file to processctx- The context to evaluate the script against.- Returns:
- The resultant value
- Throws:
IOException- Exception thrown if there is an IO problem accessing the file.
-
evalFile
- Throws:
IOException
-
evalFile
Evaluate a script from a file with injected variables and return the resultant value.- Parameters:
file- The file to processvars- Variables to be injected- Returns:
- The resultant value
- Throws:
IOException- Exception thrown if there is an IO problem accessing the file.
-
evalFile
Evaluate a script from a file with injected variables and a context object, then return the resultant value.- Parameters:
file- The file to processctx- The context to evaluate the script against.vars- Variables to be injected- Returns:
- The resultant value
- Throws:
IOException- Exception thrown if there is an IO problem accessing the file.
-
evalFile
public static Object evalFile(File file, String encoding, Object ctx, Map<String, Object> vars) throws IOException- Throws:
IOException
-
evalFile
public static Object evalFile(File file, Object ctx, VariableResolverFactory vars) throws IOException Evaluate a script from a file with injected variables and a context object, then return the resultant value.- Parameters:
file- The file to processctx- The context to evaluate the script against.vars- Variables to be injected- Returns:
- The resultant value
- Throws:
IOException- Exception thrown if there is an IO problem accessing the file.
-
evalFile
public static Object evalFile(File file, String encoding, Object ctx, VariableResolverFactory vars) throws IOException - Throws:
IOException
-
evalToBoolean
Evaluate an expression in Boolean-only mode against a root context object and injected variables.- Parameters:
expression- A string containing the expression to be evaluated.ctx- The context against which to evaluate the expressionvars- The variables to be injected- Returns:
- The resultant value as a Boolean
-
evalToBoolean
Evaluate an expression in Boolean-only mode against a root context object.- Parameters:
expression- A string containing the expression to be evaluated.ctx- The context against which to evaluate the expression- Returns:
- The resultant value as a Boolean
-
evalToBoolean
Evaluate an expression in Boolean-only mode against a root context object and injected variables.- Parameters:
expression- A string containing the expression to be evaluated.ctx- The context against which to evaluate the expressionvars- The variables to be injected- Returns:
- The resultant value as a Boolean
-
evalToBoolean
Evaluate an expression in Boolean-only with injected variables.- Parameters:
expression- A string containing the expression to be evaluated.vars- The variables to be injected- Returns:
- The resultant value as a Boolean
-
evalToBoolean
Evaluate an expression in Boolean-only with injected variables.- Parameters:
expression- A string containing the expression to be evaluated.vars- The variables to be injected- Returns:
- The resultant value as a Boolean
-
analysisCompile
Performs an analysis compileShared, which will populate the ParserContext with type, input and variable information, but will not produce a payload.- Parameters:
expression- - the expression to analyzectx- - the parser context
-
analysisCompile
-
analyze
-
analyze
-
compileExpression
Compiles an expression and returns a Serializable object containing the compiled expression. The returned value can be reused for higher-performance evaluation of the expression. It is used in a straight forward way:
The above example demonstrates a compiled expression being reused ina tight, closed, loop. Doing this greatly improves performance as re-parsing of the expression is not required, and the runtime can dynamically compileShared the expression to bytecode of necessary.// Compile the expression Serializable compiled = MVEL.compileExpression("x * 10"); // Create a Map to hold the variables. Map vars = new HashMap(); // Create a factory to envelop the variable map VariableResolverFactory factory = new MapVariableResolverFactory(vars); int total = 0; for (int i = 0; i < 100; i++) { // Update the 'x' variable. vars.put("x", i); // Execute the expression against the compiled payload and factory, and add the result to the total variable. total += (Integer) MVEL.executeExpression(compiled, factory); } // Total should be 49500 assert total == 49500;- Parameters:
expression- A String contaiing the expression to be compiled.- Returns:
- The cacheable compiled payload.
-
compileExpression
Compiles an expression and returns a Serializable object containing the compiled expression. This method also accept a Map of imports. The Map's keys are String's representing the imported, short-form name of the Classes or Methods imported. An import of a Method is essentially a static import. This is a substitute for needing to declare import statements within the actual script.Map imports = new HashMap(); imports.put("HashMap", java.util.HashMap.class); // import a class imports.put("time", MVEL.getStaticMethod(System.class, "currentTimeMillis", new Class[0])); // import a static method // Compile the expression Serializable compiled = MVEL.compileExpression("map = new HashMap(); map.put('time', time()); map.time"); // Execute with a blank Map to allow vars to be declared. Long val = (Long) MVEL.executeExpression(compiled, new HashMap()); assert val > 0;- Parameters:
expression- A String contaiing the expression to be compiled.imports- A String-Class/String-Method pair Map containing imports for the compiler.- Returns:
- The cacheable compiled payload.
-
compileExpression
public static Serializable compileExpression(String expression, Map<String, Object> imports, Map<String, Interceptor> interceptors) Compiles an expression and returns a Serializable object containing the compiled expression. This method accepts a Map of imports and Interceptors. SeecompileExpression(String, Map)for information on imports. The imports parameter in this method is optional and it is safe to pass a null value.Interceptorsare markers within an expression that allow external hooks to be tied into the expression.
The above example demonstrates inserting an interceptor into a piece of code. The @log interceptor wraps the subsequent statement. In this case, the interceptor is fired before the for loop and after the for loop finishes.// Create a Map to hold the interceptors. Map interceptors = new HashMap(); // Create a simple interceptor. Interceptor logInterceptor = new Interceptor() { public int doBefore(ASTNode node, VariableResolverFactory factory) { System.out.println("Interceptor called before!"); } public int doAfter(Object exitValue, ASTNode node, VariableResolverFactory factory) { System.out.println("Interceptor called after!"); } }; // Add the interceptor to the Map. interceptors.put("log", logInterceptor); // Create an expression String expr = "list = [1,2,3,4,5]; @log for (item : list) { System.out.println(item); }; Serializable compiled = MVEL.compileExpression(expr, null, interceptors); // Execute expression with a blank Map to allow vars to be declared. MVEL.executeExpression(compiled, new HashMap());- Parameters:
expression- A String containing the expression to be evaluated.imports- A String-Class/String-Method pair Map containing imports for the compiler.interceptors- A Map of registered interceptors.- Returns:
- A cacheable compiled payload.
-
compileExpression
Compiles an expression, and accepts aParserContextinstance. The ParserContext object is the fine-grained configuration object for the MVEL parser and compiler.- Parameters:
expression- A string containing the expression to be compiled.ctx- The parser context- Returns:
- A cacheable compiled payload.
-
compileExpression
public static Serializable compileExpression(char[] expression, int start, int offset, ParserContext ctx) -
compileExpression
public static Serializable compileExpression(String expression, Map<String, Object> imports, Map<String, Interceptor> interceptors, String sourceName) -
compileExpression
-
compileExpression
public static Serializable compileExpression(char[] expression, Map<String, Object> imports, Map<String, Interceptor> interceptors, String sourceName) Compiles an expression and returns a Serializable object containing the compiled expression.- Parameters:
expression- The expression to be compiledimports- Imported classesinterceptors- Map of named interceptossourceName- The name of the source file being evaluated (optional)- Returns:
- The cacheable compiled payload
-
compileExpression
-
compileExpression
-
compileExpression
public static Serializable compileExpression(char[] expression, Map<String, Object> imports, Map<String, Interceptor> interceptors) -
compileGetExpression
-
compileGetExpression
-
compileGetExpression
-
compileGetExpression
-
compileSetExpression
-
compileSetExpression
-
compileSetExpression
public static Serializable compileSetExpression(String expression, Class ingressType, ParserContext ctx) -
compileSetExpression
-
compileSetExpression
-
compileSetExpression
public static Serializable compileSetExpression(char[] expression, int start, int offset, ParserContext ctx) -
compileSetExpression
public static Serializable compileSetExpression(char[] expression, Class ingressType, ParserContext ctx) -
executeSetExpression
-
executeSetExpression
public static void executeSetExpression(Serializable compiledSet, Object ctx, VariableResolverFactory vrf, Object value) -
executeExpression
-
executeExpression
Executes a compiled expression.- Parameters:
compiledExpression- -ctx- -vars- -- Returns:
- -
- See Also:
-
executeTbExpression
-
executeExpression
public static Object executeExpression(Object compiledExpression, Object ctx, VariableResolverFactory resolverFactory) -
executeExpression
Executes a compiled expression.- Parameters:
compiledExpression- -factory- -- Returns:
- -
- See Also:
-
executeExpression
Executes a compiled expression.- Parameters:
compiledExpression- -ctx- -- Returns:
- -
- See Also:
-
executeExpression
Executes a compiled expression.- Parameters:
compiledExpression- -vars- -- Returns:
- -
- See Also:
-
executeExpression
public static <T> T executeExpression(Object compiledExpression, Object ctx, Map vars, Class<T> toType) Execute a compiled expression and convert the result to a type- Type Parameters:
T- type- Parameters:
compiledExpression- -ctx- -vars- -toType- -- Returns:
- -
-
executeExpression
public static <T> T executeExpression(Object compiledExpression, Object ctx, VariableResolverFactory vars, Class<T> toType) -
executeExpression
Execute a compiled expression and convert the result to a type- Type Parameters:
T- type- Parameters:
compiledExpression- -vars- -toType- -- Returns:
- -
-
executeExpression
Execute a compiled expression and convert the result to a type.- Type Parameters:
T- type- Parameters:
compiledExpression- -ctx- -toType- -- Returns:
- -
-
executeExpression
-
executeExpression
-
executeExpression
-
executeExpression
public static void executeExpression(Iterable<CompiledExpression> compiledExpression, Object ctx, Map vars) -
executeExpression
public static void executeExpression(Iterable<CompiledExpression> compiledExpression, Object ctx, VariableResolverFactory vars) -
executeAllExpression
public static Object[] executeAllExpression(Serializable[] compiledExpressions, Object ctx, VariableResolverFactory vars) -
executeDebugger
public static Object executeDebugger(CompiledExpression expression, Object ctx, VariableResolverFactory vars) -
parseMacros
-
preprocess
-
preprocess
-
getProperty
-
setProperty
-
getStaticMethod
A simple utility method to get a static method from a class with no checked exception. With throw a RuntimeException if the method is not found or is not a static method.- Parameters:
cls- The class containing the static methodmethodName- The method namesignature- The signature of the method- Returns:
- An instance of the Method
-