Package org.mvel2
Class MVEL
- java.lang.Object
-
- org.mvel2.MVEL
-
public class MVEL extends java.lang.ObjectThe 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 Modifier and Type Field Description (package private) static booleanADVANCED_DEBUG(package private) static java.lang.StringADVANCED_DEBUGGING_FILEstatic java.lang.StringCODENAMEstatic booleanCOMPILER_OPT_ALLOCATE_TYPE_LITERALS_TO_SHARED_SYMBOL_TABLEstatic booleanCOMPILER_OPT_ALLOW_NAKED_METH_CALLstatic booleanCOMPILER_OPT_ALLOW_OVERRIDE_ALL_PROPHANDLINGstatic booleanCOMPILER_OPT_ALLOW_RESOLVE_INNERCLASSES_WITH_DOTNOTATIONstatic booleanCOMPILER_OPT_SUPPORT_JAVA_STYLE_CLASS_LITERALS(package private) static booleanDEBUG_FILEstatic booleanINVOKED_METHOD_EXCEPTIONS_BUBBLEstatic java.lang.StringNAME(package private) static booleanNO_JIT(package private) static booleanOPTIMIZERstatic booleanRUNTIME_OPT_THREAD_UNSAFEstatic java.lang.StringVERSIONstatic java.lang.StringVERSION_SUB(package private) static booleanWEAK_CACHE
-
Constructor Summary
Constructors Modifier Constructor Description privateMVEL()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static java.lang.Object_evalFile(java.io.File file, java.lang.Object ctx, VariableResolverFactory factory)private static java.lang.Object_evalFile(java.io.File file, java.lang.String encoding, java.lang.Object ctx, VariableResolverFactory factory)static 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(java.lang.String expression, ParserContext ctx)static java.lang.Classanalyze(char[] expression, ParserContext ctx)static java.lang.Classanalyze(java.lang.String expression, ParserContext ctx)static java.io.SerializablecompileExpression(char[] expression)static java.io.SerializablecompileExpression(char[] expression, int start, int offset, ParserContext ctx)static java.io.SerializablecompileExpression(char[] expression, java.util.Map<java.lang.String,java.lang.Object> imports)static java.io.SerializablecompileExpression(char[] expression, java.util.Map<java.lang.String,java.lang.Object> imports, java.util.Map<java.lang.String,Interceptor> interceptors)static java.io.SerializablecompileExpression(char[] expression, java.util.Map<java.lang.String,java.lang.Object> imports, java.util.Map<java.lang.String,Interceptor> interceptors, java.lang.String sourceName)Compiles an expression and returns a Serializable object containing the compiled expression.static java.io.SerializablecompileExpression(char[] expression, ParserContext ctx)static java.io.SerializablecompileExpression(java.lang.String expression)Compiles an expression and returns a Serializable object containing the compiled expression.static java.io.SerializablecompileExpression(java.lang.String expression, java.util.Map<java.lang.String,java.lang.Object> imports)Compiles an expression and returns a Serializable object containing the compiled expression.static java.io.SerializablecompileExpression(java.lang.String expression, java.util.Map<java.lang.String,java.lang.Object> imports, java.util.Map<java.lang.String,Interceptor> interceptors)Compiles an expression and returns a Serializable object containing the compiled expression.static java.io.SerializablecompileExpression(java.lang.String expression, java.util.Map<java.lang.String,java.lang.Object> imports, java.util.Map<java.lang.String,Interceptor> interceptors, java.lang.String sourceName)static java.io.SerializablecompileExpression(java.lang.String expression, ParserContext ctx)Compiles an expression, and accepts aParserContextinstance.static java.io.SerializablecompileGetExpression(char[] expression)static java.io.SerializablecompileGetExpression(char[] expression, ParserContext ctx)static java.io.SerializablecompileGetExpression(java.lang.String expression)static java.io.SerializablecompileGetExpression(java.lang.String expression, ParserContext ctx)static java.io.SerializablecompileSetExpression(char[] expression)static java.io.SerializablecompileSetExpression(char[] expression, int start, int offset, ParserContext ctx)static java.io.SerializablecompileSetExpression(char[] expression, java.lang.Class ingressType, ParserContext ctx)static java.io.SerializablecompileSetExpression(char[] expression, ParserContext ctx)static java.io.SerializablecompileSetExpression(java.lang.String expression)static java.io.SerializablecompileSetExpression(java.lang.String expression, java.lang.Class ingressType, ParserContext ctx)static java.io.SerializablecompileSetExpression(java.lang.String expression, ParserContext ctx)static java.lang.Objecteval(char[] expression)Evaluate an expression and return the value.static java.lang.Objecteval(char[] expression, int start, int offset, java.lang.Object ctx, VariableResolverFactory vars)static <T> Teval(char[] expression, int start, int offset, java.lang.Object ctx, VariableResolverFactory vars, java.lang.Class<T> toType)static <T> Teval(char[] expression, java.lang.Class<T> type)static java.lang.Objecteval(char[] expression, java.lang.Object ctx)Evaluate an expression against a context object and return the valuestatic <T> Teval(char[] expression, java.lang.Object ctx, java.lang.Class<T> toType)Evaluate an expression with a context object and return the value.static java.lang.Objecteval(char[] expression, java.lang.Object ctx, java.util.Map vars)Evaluate an expression against a context object and return the valuestatic <T> Teval(char[] expression, java.lang.Object ctx, java.util.Map<java.lang.String,java.lang.Object> vars, java.lang.Class<T> toType)Evaluate an expression with a context object and injected variables and return the value.static java.lang.Objecteval(char[] expression, java.lang.Object ctx, VariableResolverFactory vars)Evaluate an expression against a context object and return the valuestatic <T> Teval(char[] expression, java.lang.Object ctx, VariableResolverFactory vars, java.lang.Class<T> toType)Evaluate an expression with a context object and injected variables and return the value.static <T> Teval(char[] expression, java.util.Map<java.lang.String,java.lang.Object> vars, java.lang.Class<T> toType)Evaluate an expression with injected variables and return the resultant value.static <T> Teval(char[] expression, VariableResolverFactory vars, java.lang.Class<T> toType)Evaluate an expression with injected variables and return the value.static java.lang.Objecteval(java.lang.String expression)Evaluate an expression and return the value.static <T> Teval(java.lang.String expression, java.lang.Class<T> toType)Evaluates an expression and, if necessary, coerces the resultant value to the specified type.static java.lang.Objecteval(java.lang.String expression, java.lang.Object ctx)Evaluate an expression against a context object.static <T> Teval(java.lang.String expression, java.lang.Object ctx, java.lang.Class<T> toType)Evaluates an expression against a context object and, if necessary, coerces the resultant value to the specified type.static java.lang.Objecteval(java.lang.String expression, java.lang.Object ctx, java.util.Map<java.lang.String,java.lang.Object> vars)Evaluates an expression against a context object and externally injected variables.static <T> Teval(java.lang.String expression, java.lang.Object ctx, java.util.Map<java.lang.String,java.lang.Object> vars, java.lang.Class<T> toType)Evaluates an expression against a context object and externally injected variables.static java.lang.Objecteval(java.lang.String expression, java.lang.Object ctx, VariableResolverFactory resolverFactory)Evaluates an expression against a context object and injected variables from aVariableResolverFactory.static <T> Teval(java.lang.String expression, java.lang.Object ctx, VariableResolverFactory vars, java.lang.Class<T> toType)Evaluates an expression against a context object and externally injected variables.static java.lang.Objecteval(java.lang.String expression, java.util.Map<java.lang.String,java.lang.Object> vars)Evaluates an expression against externally injected variables.static <T> Teval(java.lang.String expression, java.util.Map<java.lang.String,java.lang.Object> vars, java.lang.Class<T> toType)Evaluates an expression against externally injected variables.static java.lang.Objecteval(java.lang.String expression, VariableResolverFactory resolverFactory)Evaluate an expression with externally injected variables via aVariableResolverFactory.static <T> Teval(java.lang.String expression, VariableResolverFactory vars, java.lang.Class<T> toType)Evaluates an expression against externally injected variables and, if necessary, coerces the resultant value to the specified type.static java.lang.ObjectevalFile(java.io.File file)Evaluate a script from a file and return the resultant value.static java.lang.ObjectevalFile(java.io.File file, java.lang.Object ctx)Evaluate a script from a file, against a context object and return the resultant value.static java.lang.ObjectevalFile(java.io.File file, java.lang.Object ctx, java.util.Map<java.lang.String,java.lang.Object> vars)Evaluate a script from a file with injected variables and a context object, then return the resultant value.static java.lang.ObjectevalFile(java.io.File file, java.lang.Object ctx, VariableResolverFactory vars)Evaluate a script from a file with injected variables and a context object, then return the resultant value.static java.lang.ObjectevalFile(java.io.File file, java.lang.String encoding)static java.lang.ObjectevalFile(java.io.File file, java.lang.String encoding, java.lang.Object ctx)static java.lang.ObjectevalFile(java.io.File file, java.lang.String encoding, java.lang.Object ctx, java.util.Map<java.lang.String,java.lang.Object> vars)static java.lang.ObjectevalFile(java.io.File file, java.lang.String encoding, java.lang.Object ctx, VariableResolverFactory vars)static java.lang.ObjectevalFile(java.io.File file, java.util.Map<java.lang.String,java.lang.Object> vars)Evaluate a script from a file with injected variables and return the resultant value.static java.lang.BooleanevalToBoolean(java.lang.String expression, java.lang.Object ctx)Evaluate an expression in Boolean-only mode against a root context object.static java.lang.BooleanevalToBoolean(java.lang.String expression, java.lang.Object ctx, java.util.Map<java.lang.String,java.lang.Object> vars)Evaluate an expression in Boolean-only mode against a root context object and injected variables.static java.lang.BooleanevalToBoolean(java.lang.String expression, java.lang.Object ctx, VariableResolverFactory vars)Evaluate an expression in Boolean-only mode against a root context object and injected variables.static java.lang.BooleanevalToBoolean(java.lang.String expression, java.util.Map<java.lang.String,java.lang.Object> vars)Evaluate an expression in Boolean-only with injected variables.static java.lang.BooleanevalToBoolean(java.lang.String expression, VariableResolverFactory vars)Evaluate an expression in Boolean-only with injected variables.static java.lang.StringevalToString(java.lang.String expression)Evaluates an expression and returns the resultant value as a String.static java.lang.StringevalToString(java.lang.String expression, java.lang.Object ctx)Evaluates an expression and returns the resultant value as a String.static java.lang.StringevalToString(java.lang.String expression, java.lang.Object ctx, java.util.Map vars)Evaluates an expression and returns the resultant value as a String.static java.lang.StringevalToString(java.lang.String expression, java.lang.Object ctx, VariableResolverFactory vars)Evaluates an expression and returns the resultant value as a String.static java.lang.StringevalToString(java.lang.String expression, java.util.Map vars)Evaluates an expression and returns the resultant value as a String.static java.lang.StringevalToString(java.lang.String expression, VariableResolverFactory vars)Evaluates an expression and returns the resultant value as a String.static java.lang.Object[]executeAllExpression(java.io.Serializable[] compiledExpressions, java.lang.Object ctx, VariableResolverFactory vars)static java.lang.ObjectexecuteDebugger(CompiledExpression expression, java.lang.Object ctx, VariableResolverFactory vars)static voidexecuteExpression(java.lang.Iterable<CompiledExpression> compiledExpression)static voidexecuteExpression(java.lang.Iterable<CompiledExpression> compiledExpression, java.lang.Object ctx)static voidexecuteExpression(java.lang.Iterable<CompiledExpression> compiledExpression, java.lang.Object ctx, java.util.Map vars)static voidexecuteExpression(java.lang.Iterable<CompiledExpression> compiledExpression, java.lang.Object ctx, VariableResolverFactory vars)static voidexecuteExpression(java.lang.Iterable<CompiledExpression> compiledExpression, java.util.Map vars)static java.lang.ObjectexecuteExpression(java.lang.Object compiledExpression)static java.lang.ObjectexecuteExpression(java.lang.Object compiledExpression, java.lang.Object ctx)Executes a compiled expression.static <T> TexecuteExpression(java.lang.Object compiledExpression, java.lang.Object ctx, java.lang.Class<T> toType)Execute a compiled expression and convert the result to a type.static java.lang.ObjectexecuteExpression(java.lang.Object compiledExpression, java.lang.Object ctx, java.util.Map vars)Executes a compiled expression.static <T> TexecuteExpression(java.lang.Object compiledExpression, java.lang.Object ctx, java.util.Map vars, java.lang.Class<T> toType)Execute a compiled expression and convert the result to a typestatic java.lang.ObjectexecuteExpression(java.lang.Object compiledExpression, java.lang.Object ctx, VariableResolverFactory resolverFactory)static <T> TexecuteExpression(java.lang.Object compiledExpression, java.lang.Object ctx, VariableResolverFactory vars, java.lang.Class<T> toType)static java.lang.ObjectexecuteExpression(java.lang.Object compiledExpression, java.util.Map vars)Executes a compiled expression.static <T> TexecuteExpression(java.lang.Object compiledExpression, java.util.Map vars, java.lang.Class<T> toType)Execute a compiled expression and convert the result to a typestatic java.lang.ObjectexecuteExpression(java.lang.Object compiledExpression, VariableResolverFactory factory)Executes a compiled expression.static voidexecuteSetExpression(java.io.Serializable compiledSet, java.lang.Object ctx, java.lang.Object value)static voidexecuteSetExpression(java.io.Serializable compiledSet, java.lang.Object ctx, VariableResolverFactory vrf, java.lang.Object value)static java.lang.StringgetDebuggingOutputFileName()static java.lang.ObjectgetProperty(java.lang.String property, java.lang.Object ctx)static java.lang.reflect.MethodgetStaticMethod(java.lang.Class cls, java.lang.String methodName, java.lang.Class[] signature)A simple utility method to get a static method from a class with no checked exception.static booleanisAdvancedDebugging()static booleanisFileDebugging()static java.lang.StringparseMacros(java.lang.String input, java.util.Map<java.lang.String,Macro> macros)static java.lang.Stringpreprocess(char[] input, PreProcessor[] preprocessors)static java.lang.Stringpreprocess(java.lang.String input, PreProcessor[] preprocessors)static voidsetProperty(java.lang.Object ctx, java.lang.String property, java.lang.Object value)
-
-
-
Field Detail
-
NAME
public static final java.lang.String NAME
- See Also:
- Constant Field Values
-
VERSION
public static final java.lang.String VERSION
- See Also:
- Constant Field Values
-
VERSION_SUB
public static final java.lang.String VERSION_SUB
- See Also:
- Constant Field Values
-
CODENAME
public static final java.lang.String CODENAME
- See Also:
- Constant Field Values
-
DEBUG_FILE
static boolean DEBUG_FILE
-
ADVANCED_DEBUGGING_FILE
static java.lang.String ADVANCED_DEBUGGING_FILE
-
ADVANCED_DEBUG
static boolean ADVANCED_DEBUG
-
WEAK_CACHE
static boolean WEAK_CACHE
-
NO_JIT
static boolean NO_JIT
-
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
-
OPTIMIZER
static boolean OPTIMIZER
-
-
Method Detail
-
isAdvancedDebugging
public static boolean isAdvancedDebugging()
-
getDebuggingOutputFileName
public static java.lang.String getDebuggingOutputFileName()
-
isFileDebugging
public static boolean isFileDebugging()
-
eval
public static java.lang.Object eval(java.lang.String expression)
Evaluate an expression and return the value.- Parameters:
expression- A String containing the expression to be evaluated.- Returns:
- the resultant value
-
eval
public static java.lang.Object eval(java.lang.String expression, java.lang.Object ctx)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
public static java.lang.Object eval(java.lang.String expression, VariableResolverFactory resolverFactory)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
public static java.lang.Object eval(java.lang.String expression, java.lang.Object ctx, VariableResolverFactory resolverFactory)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(String, org.mvel2.integration.VariableResolverFactory)
-
eval
public static java.lang.Object eval(java.lang.String expression, java.util.Map<java.lang.String,java.lang.Object> vars)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(String, org.mvel2.integration.VariableResolverFactory)
-
eval
public static java.lang.Object eval(java.lang.String expression, java.lang.Object ctx, java.util.Map<java.lang.String,java.lang.Object> vars)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(String, VariableResolverFactory)
-
eval
public static <T> T eval(java.lang.String expression, java.lang.Class<T> toType)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
public static <T> T eval(java.lang.String expression, java.lang.Object ctx, java.lang.Class<T> toType)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(String, Class)
-
eval
public static <T> T eval(java.lang.String expression, VariableResolverFactory vars, java.lang.Class<T> toType)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(String, VariableResolverFactory),eval(String, Class)
-
eval
public static <T> T eval(java.lang.String expression, java.util.Map<java.lang.String,java.lang.Object> vars, java.lang.Class<T> toType)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(String, org.mvel2.integration.VariableResolverFactory)
-
eval
public static <T> T eval(java.lang.String expression, java.lang.Object ctx, VariableResolverFactory vars, java.lang.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(String, Object, VariableResolverFactory),eval(String, Class)
-
eval
public static <T> T eval(java.lang.String expression, java.lang.Object ctx, java.util.Map<java.lang.String,java.lang.Object> vars, java.lang.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- 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:
eval(String, Object, VariableResolverFactory),eval(String, Class)
-
evalToString
public static java.lang.String evalToString(java.lang.String expression)
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
public static java.lang.String evalToString(java.lang.String expression, java.lang.Object ctx)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:
eval(String, Object)
-
evalToString
public static java.lang.String evalToString(java.lang.String expression, VariableResolverFactory vars)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:
eval(String, VariableResolverFactory)
-
evalToString
public static java.lang.String evalToString(java.lang.String expression, java.util.Map vars)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:
eval(String, Map)
-
evalToString
public static java.lang.String evalToString(java.lang.String expression, java.lang.Object ctx, VariableResolverFactory vars)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:
eval(String, Map)
-
evalToString
public static java.lang.String evalToString(java.lang.String expression, java.lang.Object ctx, java.util.Map vars)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(String, Map)
-
eval
public static java.lang.Object eval(char[] expression)
Evaluate an expression and return the value.- Parameters:
expression- A char[] containing the expression to be evaluated.- Returns:
- The resultant value
- See Also:
eval(String)
-
eval
public static java.lang.Object eval(char[] expression, java.lang.Object ctx)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(String, Object)
-
eval
public static <T> T eval(char[] expression, java.lang.Class<T> type)
-
eval
public static java.lang.Object eval(char[] expression, java.lang.Object ctx, VariableResolverFactory vars)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(String, Object, VariableResolverFactory)
-
eval
public static java.lang.Object eval(char[] expression, int start, int offset, java.lang.Object ctx, VariableResolverFactory vars)
-
eval
public static <T> T eval(char[] expression, int start, int offset, java.lang.Object ctx, VariableResolverFactory vars, java.lang.Class<T> toType)
-
eval
public static java.lang.Object eval(char[] expression, java.lang.Object ctx, java.util.Map vars)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(String, Object, Map)
-
eval
public static <T> T eval(char[] expression, java.lang.Object ctx, java.util.Map<java.lang.String,java.lang.Object> vars, java.lang.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- 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(String, Object, Map, Class)
-
eval
public static <T> T eval(char[] expression, java.lang.Object ctx, java.lang.Class<T> toType)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(String, Object, Class)
-
eval
public static <T> T eval(char[] expression, java.lang.Object ctx, VariableResolverFactory vars, java.lang.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(String, Object, VariableResolverFactory, Class)
-
eval
public static <T> T eval(char[] expression, VariableResolverFactory vars, java.lang.Class<T> toType)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(String, VariableResolverFactory, Class)
-
eval
public static <T> T eval(char[] expression, java.util.Map<java.lang.String,java.lang.Object> vars, java.lang.Class<T> toType)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:
eval(String, Map, Class)
-
evalFile
public static java.lang.Object evalFile(java.io.File file) throws java.io.IOExceptionEvaluate a script from a file and return the resultant value.- Parameters:
file- The file to process- Returns:
- The resultant value
- Throws:
java.io.IOException- Exception thrown if there is an IO problem accessing the file.
-
evalFile
public static java.lang.Object evalFile(java.io.File file, java.lang.String encoding) throws java.io.IOException- Throws:
java.io.IOException
-
evalFile
public static java.lang.Object evalFile(java.io.File file, java.lang.Object ctx) throws java.io.IOExceptionEvaluate 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:
java.io.IOException- Exception thrown if there is an IO problem accessing the file.
-
evalFile
public static java.lang.Object evalFile(java.io.File file, java.lang.String encoding, java.lang.Object ctx) throws java.io.IOException- Throws:
java.io.IOException
-
evalFile
public static java.lang.Object evalFile(java.io.File file, java.util.Map<java.lang.String,java.lang.Object> vars) throws java.io.IOExceptionEvaluate 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:
java.io.IOException- Exception thrown if there is an IO problem accessing the file.
-
evalFile
public static java.lang.Object evalFile(java.io.File file, java.lang.Object ctx, java.util.Map<java.lang.String,java.lang.Object> vars) throws java.io.IOExceptionEvaluate 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:
java.io.IOException- Exception thrown if there is an IO problem accessing the file.
-
evalFile
public static java.lang.Object evalFile(java.io.File file, java.lang.String encoding, java.lang.Object ctx, java.util.Map<java.lang.String,java.lang.Object> vars) throws java.io.IOException- Throws:
java.io.IOException
-
evalFile
public static java.lang.Object evalFile(java.io.File file, java.lang.Object ctx, VariableResolverFactory vars) throws java.io.IOExceptionEvaluate 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:
java.io.IOException- Exception thrown if there is an IO problem accessing the file.
-
evalFile
public static java.lang.Object evalFile(java.io.File file, java.lang.String encoding, java.lang.Object ctx, VariableResolverFactory vars) throws java.io.IOException- Throws:
java.io.IOException
-
_evalFile
private static java.lang.Object _evalFile(java.io.File file, java.lang.Object ctx, VariableResolverFactory factory) throws java.io.IOException- Throws:
java.io.IOException
-
_evalFile
private static java.lang.Object _evalFile(java.io.File file, java.lang.String encoding, java.lang.Object ctx, VariableResolverFactory factory) throws java.io.IOException- Throws:
java.io.IOException
-
evalToBoolean
public static java.lang.Boolean evalToBoolean(java.lang.String expression, java.lang.Object ctx, java.util.Map<java.lang.String,java.lang.Object> vars)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
public static java.lang.Boolean evalToBoolean(java.lang.String expression, java.lang.Object ctx)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
public static java.lang.Boolean evalToBoolean(java.lang.String expression, java.lang.Object ctx, VariableResolverFactory vars)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
public static java.lang.Boolean evalToBoolean(java.lang.String expression, VariableResolverFactory vars)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
public static java.lang.Boolean evalToBoolean(java.lang.String expression, java.util.Map<java.lang.String,java.lang.Object> vars)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
public static void analysisCompile(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.- Parameters:
expression- - the expression to analyzectx- - the parser context
-
analysisCompile
public static void analysisCompile(java.lang.String expression, ParserContext ctx)
-
analyze
public static java.lang.Class analyze(char[] expression, ParserContext ctx)
-
analyze
public static java.lang.Class analyze(java.lang.String expression, ParserContext ctx)
-
compileExpression
public static java.io.Serializable compileExpression(java.lang.String expression)
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
public static java.io.Serializable compileExpression(java.lang.String expression, java.util.Map<java.lang.String,java.lang.Object> imports)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 java.io.Serializable compileExpression(java.lang.String expression, java.util.Map<java.lang.String,java.lang.Object> imports, java.util.Map<java.lang.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
public static java.io.Serializable compileExpression(java.lang.String expression, ParserContext ctx)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 java.io.Serializable compileExpression(char[] expression, int start, int offset, ParserContext ctx)
-
compileExpression
public static java.io.Serializable compileExpression(java.lang.String expression, java.util.Map<java.lang.String,java.lang.Object> imports, java.util.Map<java.lang.String,Interceptor> interceptors, java.lang.String sourceName)
-
compileExpression
public static java.io.Serializable compileExpression(char[] expression, ParserContext ctx)
-
compileExpression
public static java.io.Serializable compileExpression(char[] expression, java.util.Map<java.lang.String,java.lang.Object> imports, java.util.Map<java.lang.String,Interceptor> interceptors, java.lang.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
public static java.io.Serializable compileExpression(char[] expression)
-
compileExpression
public static java.io.Serializable compileExpression(char[] expression, java.util.Map<java.lang.String,java.lang.Object> imports)
-
compileExpression
public static java.io.Serializable compileExpression(char[] expression, java.util.Map<java.lang.String,java.lang.Object> imports, java.util.Map<java.lang.String,Interceptor> interceptors)
-
compileGetExpression
public static java.io.Serializable compileGetExpression(java.lang.String expression)
-
compileGetExpression
public static java.io.Serializable compileGetExpression(java.lang.String expression, ParserContext ctx)
-
compileGetExpression
public static java.io.Serializable compileGetExpression(char[] expression)
-
compileGetExpression
public static java.io.Serializable compileGetExpression(char[] expression, ParserContext ctx)
-
compileSetExpression
public static java.io.Serializable compileSetExpression(java.lang.String expression)
-
compileSetExpression
public static java.io.Serializable compileSetExpression(java.lang.String expression, ParserContext ctx)
-
compileSetExpression
public static java.io.Serializable compileSetExpression(java.lang.String expression, java.lang.Class ingressType, ParserContext ctx)
-
compileSetExpression
public static java.io.Serializable compileSetExpression(char[] expression)
-
compileSetExpression
public static java.io.Serializable compileSetExpression(char[] expression, ParserContext ctx)
-
compileSetExpression
public static java.io.Serializable compileSetExpression(char[] expression, int start, int offset, ParserContext ctx)
-
compileSetExpression
public static java.io.Serializable compileSetExpression(char[] expression, java.lang.Class ingressType, ParserContext ctx)
-
executeSetExpression
public static void executeSetExpression(java.io.Serializable compiledSet, java.lang.Object ctx, java.lang.Object value)
-
executeSetExpression
public static void executeSetExpression(java.io.Serializable compiledSet, java.lang.Object ctx, VariableResolverFactory vrf, java.lang.Object value)
-
executeExpression
public static java.lang.Object executeExpression(java.lang.Object compiledExpression)
-
executeExpression
public static java.lang.Object executeExpression(java.lang.Object compiledExpression, java.lang.Object ctx, java.util.Map vars)Executes a compiled expression.- Parameters:
compiledExpression- -ctx- -vars- -- Returns:
- -
- See Also:
compileExpression(String)
-
executeExpression
public static java.lang.Object executeExpression(java.lang.Object compiledExpression, java.lang.Object ctx, VariableResolverFactory resolverFactory)
-
executeExpression
public static java.lang.Object executeExpression(java.lang.Object compiledExpression, VariableResolverFactory factory)Executes a compiled expression.- Parameters:
compiledExpression- -factory- -- Returns:
- -
- See Also:
compileExpression(String)
-
executeExpression
public static java.lang.Object executeExpression(java.lang.Object compiledExpression, java.lang.Object ctx)Executes a compiled expression.- Parameters:
compiledExpression- -ctx- -- Returns:
- -
- See Also:
compileExpression(String)
-
executeExpression
public static java.lang.Object executeExpression(java.lang.Object compiledExpression, java.util.Map vars)Executes a compiled expression.- Parameters:
compiledExpression- -vars- -- Returns:
- -
- See Also:
compileExpression(String)
-
executeExpression
public static <T> T executeExpression(java.lang.Object compiledExpression, java.lang.Object ctx, java.util.Map vars, java.lang.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(java.lang.Object compiledExpression, java.lang.Object ctx, VariableResolverFactory vars, java.lang.Class<T> toType)
-
executeExpression
public static <T> T executeExpression(java.lang.Object compiledExpression, java.util.Map vars, java.lang.Class<T> toType)Execute a compiled expression and convert the result to a type- Type Parameters:
T- type- Parameters:
compiledExpression- -vars- -toType- -- Returns:
- -
-
executeExpression
public static <T> T executeExpression(java.lang.Object compiledExpression, java.lang.Object ctx, java.lang.Class<T> toType)Execute a compiled expression and convert the result to a type.- Type Parameters:
T- type- Parameters:
compiledExpression- -ctx- -toType- -- Returns:
- -
-
executeExpression
public static void executeExpression(java.lang.Iterable<CompiledExpression> compiledExpression)
-
executeExpression
public static void executeExpression(java.lang.Iterable<CompiledExpression> compiledExpression, java.lang.Object ctx)
-
executeExpression
public static void executeExpression(java.lang.Iterable<CompiledExpression> compiledExpression, java.util.Map vars)
-
executeExpression
public static void executeExpression(java.lang.Iterable<CompiledExpression> compiledExpression, java.lang.Object ctx, java.util.Map vars)
-
executeExpression
public static void executeExpression(java.lang.Iterable<CompiledExpression> compiledExpression, java.lang.Object ctx, VariableResolverFactory vars)
-
executeAllExpression
public static java.lang.Object[] executeAllExpression(java.io.Serializable[] compiledExpressions, java.lang.Object ctx, VariableResolverFactory vars)
-
executeDebugger
public static java.lang.Object executeDebugger(CompiledExpression expression, java.lang.Object ctx, VariableResolverFactory vars)
-
parseMacros
public static java.lang.String parseMacros(java.lang.String input, java.util.Map<java.lang.String,Macro> macros)
-
preprocess
public static java.lang.String preprocess(char[] input, PreProcessor[] preprocessors)
-
preprocess
public static java.lang.String preprocess(java.lang.String input, PreProcessor[] preprocessors)
-
getProperty
public static java.lang.Object getProperty(java.lang.String property, java.lang.Object ctx)
-
setProperty
public static void setProperty(java.lang.Object ctx, java.lang.String property, java.lang.Object value)
-
getStaticMethod
public static java.lang.reflect.Method getStaticMethod(java.lang.Class cls, java.lang.String methodName, java.lang.Class[] signature)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
-
-