Package org.mvel2

Class MVEL


  • public class MVEL
    extends java.lang.Object
    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.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private MVEL()  
    • 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 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.
      static void analysisCompile​(java.lang.String expression, ParserContext ctx)  
      static java.lang.Class analyze​(char[] expression, ParserContext ctx)  
      static java.lang.Class analyze​(java.lang.String expression, ParserContext ctx)  
      static java.io.Serializable compileExpression​(char[] expression)  
      static java.io.Serializable compileExpression​(char[] expression, int start, int offset, ParserContext ctx)  
      static java.io.Serializable compileExpression​(char[] expression, java.util.Map<java.lang.String,​java.lang.Object> imports)  
      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)  
      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.
      static java.io.Serializable compileExpression​(char[] expression, ParserContext ctx)  
      static java.io.Serializable compileExpression​(java.lang.String expression)
      Compiles an expression and returns a Serializable object containing the compiled expression.
      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.
      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.
      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)  
      static java.io.Serializable compileExpression​(java.lang.String expression, ParserContext ctx)
      Compiles an expression, and accepts a ParserContext instance.
      static java.io.Serializable compileGetExpression​(char[] expression)  
      static java.io.Serializable compileGetExpression​(char[] expression, ParserContext ctx)  
      static java.io.Serializable compileGetExpression​(java.lang.String expression)  
      static java.io.Serializable compileGetExpression​(java.lang.String expression, ParserContext ctx)  
      static java.io.Serializable compileSetExpression​(char[] expression)  
      static java.io.Serializable compileSetExpression​(char[] expression, int start, int offset, ParserContext ctx)  
      static java.io.Serializable compileSetExpression​(char[] expression, java.lang.Class ingressType, ParserContext ctx)  
      static java.io.Serializable compileSetExpression​(char[] expression, ParserContext ctx)  
      static java.io.Serializable compileSetExpression​(java.lang.String expression)  
      static java.io.Serializable compileSetExpression​(java.lang.String expression, java.lang.Class ingressType, ParserContext ctx)  
      static java.io.Serializable compileSetExpression​(java.lang.String expression, ParserContext ctx)  
      static java.lang.Object eval​(char[] expression)
      Evaluate an expression and return the value.
      static java.lang.Object eval​(char[] expression, int start, int offset, java.lang.Object ctx, VariableResolverFactory vars)  
      static <T> T eval​(char[] expression, int start, int offset, java.lang.Object ctx, VariableResolverFactory vars, java.lang.Class<T> toType)  
      static <T> T eval​(char[] expression, java.lang.Class<T> type)  
      static java.lang.Object eval​(char[] expression, java.lang.Object ctx)
      Evaluate an expression against a context object and return the value
      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.
      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
      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.
      static java.lang.Object eval​(char[] expression, java.lang.Object ctx, VariableResolverFactory vars)
      Evaluate an expression against a context object and return the value
      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.
      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.
      static <T> T eval​(char[] expression, VariableResolverFactory vars, java.lang.Class<T> toType)
      Evaluate an expression with injected variables and return the value.
      static java.lang.Object eval​(java.lang.String expression)
      Evaluate an expression and return the value.
      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.
      static java.lang.Object eval​(java.lang.String expression, java.lang.Object ctx)
      Evaluate an expression against a context object.
      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.
      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.
      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.
      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 a VariableResolverFactory.
      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.
      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.
      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.
      static java.lang.Object eval​(java.lang.String expression, VariableResolverFactory resolverFactory)
      Evaluate an expression with externally injected variables via a VariableResolverFactory.
      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.
      static java.lang.Object evalFile​(java.io.File file)
      Evaluate a script from a file and return the resultant value.
      static java.lang.Object evalFile​(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.Object evalFile​(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.Object evalFile​(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.Object evalFile​(java.io.File file, java.lang.String encoding)  
      static java.lang.Object evalFile​(java.io.File file, java.lang.String encoding, java.lang.Object ctx)  
      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)  
      static java.lang.Object evalFile​(java.io.File file, java.lang.String encoding, java.lang.Object ctx, VariableResolverFactory vars)  
      static java.lang.Object evalFile​(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.Boolean evalToBoolean​(java.lang.String expression, java.lang.Object ctx)
      Evaluate an expression in Boolean-only mode against a root context object.
      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.
      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.
      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.
      static java.lang.Boolean evalToBoolean​(java.lang.String expression, VariableResolverFactory vars)
      Evaluate an expression in Boolean-only with injected variables.
      static java.lang.String evalToString​(java.lang.String expression)
      Evaluates an expression and returns the resultant value as a String.
      static java.lang.String evalToString​(java.lang.String expression, java.lang.Object ctx)
      Evaluates an expression and returns the resultant value as a String.
      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.
      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.
      static java.lang.String evalToString​(java.lang.String expression, java.util.Map vars)
      Evaluates an expression and returns the resultant value as a String.
      static java.lang.String evalToString​(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.Object executeDebugger​(CompiledExpression expression, java.lang.Object ctx, VariableResolverFactory vars)  
      static void executeExpression​(java.lang.Iterable<CompiledExpression> compiledExpression)  
      static void executeExpression​(java.lang.Iterable<CompiledExpression> compiledExpression, java.lang.Object ctx)  
      static void executeExpression​(java.lang.Iterable<CompiledExpression> compiledExpression, java.lang.Object ctx, java.util.Map vars)  
      static void executeExpression​(java.lang.Iterable<CompiledExpression> compiledExpression, java.lang.Object ctx, VariableResolverFactory vars)  
      static void executeExpression​(java.lang.Iterable<CompiledExpression> compiledExpression, java.util.Map vars)  
      static java.lang.Object executeExpression​(java.lang.Object compiledExpression)  
      static java.lang.Object executeExpression​(java.lang.Object compiledExpression, java.lang.Object ctx)
      Executes a compiled expression.
      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.
      static java.lang.Object executeExpression​(java.lang.Object compiledExpression, java.lang.Object ctx, java.util.Map vars)
      Executes a compiled expression.
      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
      static java.lang.Object executeExpression​(java.lang.Object compiledExpression, java.lang.Object ctx, VariableResolverFactory resolverFactory)  
      static <T> T executeExpression​(java.lang.Object compiledExpression, java.lang.Object ctx, VariableResolverFactory vars, java.lang.Class<T> toType)  
      static java.lang.Object executeExpression​(java.lang.Object compiledExpression, java.util.Map vars)
      Executes a compiled expression.
      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
      static java.lang.Object executeExpression​(java.lang.Object compiledExpression, VariableResolverFactory factory)
      Executes a compiled expression.
      static void executeSetExpression​(java.io.Serializable compiledSet, java.lang.Object ctx, java.lang.Object value)  
      static void executeSetExpression​(java.io.Serializable compiledSet, java.lang.Object ctx, VariableResolverFactory vrf, java.lang.Object value)  
      static java.lang.String getDebuggingOutputFileName()  
      static java.lang.Object getProperty​(java.lang.String property, java.lang.Object ctx)  
      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.
      static boolean isAdvancedDebugging()  
      static boolean isFileDebugging()  
      static java.lang.String parseMacros​(java.lang.String input, java.util.Map<java.lang.String,​Macro> macros)  
      static java.lang.String preprocess​(char[] input, PreProcessor[] preprocessors)  
      static java.lang.String preprocess​(java.lang.String input, PreProcessor[] preprocessors)  
      static void setProperty​(java.lang.Object ctx, java.lang.String property, java.lang.Object value)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • 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
      • OPTIMIZER

        static boolean OPTIMIZER
    • Constructor Detail

      • MVEL

        private MVEL()
    • 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:
        
         MVEL.eval("foo == 1", ctx);
         
        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.
        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 a VariableResolverFactory. 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 a VariableResolverFactory. 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 evaluated
        ctx - 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 a MapVariableResolverFactory
        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 a MapVariableResolverFactory
        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:
        
         Float output = MVEL.eval("5 + 5", Float.class);
         
        This converts an expression that would otherwise return an Integer to a Float.
        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 evaluated
        vars - The 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, 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 injected
        toType - 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 against
        vars - The vars 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)
      • 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 against
        vars - 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 against
        vars - 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 against
        vars - 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 against
        vars - A Map of variables to be injected
        toType - 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 against
        toType - 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 against
        vars - The variables to be injected
        toType - 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 injected
        toType - 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 injected
        toType - 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.IOException
        Evaluate 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.IOException
        Evaluate a script from a file, against a context object and return the resultant value.
        Parameters:
        file - The file to process
        ctx - 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.IOException
        Evaluate a script from a file with injected variables and return the resultant value.
        Parameters:
        file - The file to process
        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.Object ctx,
                                                java.util.Map<java.lang.String,​java.lang.Object> vars)
                                         throws java.io.IOException
        Evaluate a script from a file with injected variables and a context object, then return the resultant value.
        Parameters:
        file - The file to process
        ctx - 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.IOException
        Evaluate a script from a file with injected variables and a context object, then return the resultant value.
        Parameters:
        file - The file to process
        ctx - 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 expression
        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.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 expression
        vars - 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 analyze
        ctx - - 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:
        
        
         // 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;
         
        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.
        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. See compileExpression(String, Map) for information on imports. The imports parameter in this method is optional and it is safe to pass a null value. Interceptors are markers within an expression that allow external hooks to be tied into the expression.
        
         // 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());
         
        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.
        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 a ParserContext instance. 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 compiled
        imports - Imported classes
        interceptors - Map of named interceptos
        sourceName - 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)
      • executeAllExpression

        public static java.lang.Object[] executeAllExpression​(java.io.Serializable[] compiledExpressions,
                                                              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 method
        methodName - The method name
        signature - The signature of the method
        Returns:
        An instance of the Method