org.springframework.expression

Interface Expression

  • All Known Implementing Classes:
    CompositeStringExpression, LiteralExpression, SpelExpression


    public interface Expression
    An expression capable of evaluating itself against context objects. Encapsulates the details of a previously parsed expression string. Provides a common abstraction for expression evaluation.
    Since:
    3.0
    Author:
    Keith Donald, Andy Clement, Juergen Hoeller
    • Method Detail

      • getExpressionString

        java.lang.String getExpressionString()
        Return the original string used to create this expression (unmodified).
        Returns:
        the original expression string
      • getValue

        @Nullable
        java.lang.Object getValue()
                                     throws EvaluationException
        Evaluate this expression in the default standard context.
        Returns:
        the evaluation result
        Throws:
        EvaluationException - if there is a problem during evaluation
      • getValue

        @Nullable
        <T> T getValue(@Nullable
                                 java.lang.Class<T> desiredResultType)
                          throws EvaluationException
        Evaluate the expression in the default context. If the result of the evaluation does not match (and cannot be converted to) the expected result type then an exception will be returned.
        Parameters:
        desiredResultType - the class the caller would like the result to be
        Returns:
        the evaluation result
        Throws:
        EvaluationException - if there is a problem during evaluation
      • getValue

        @Nullable
        java.lang.Object getValue(java.lang.Object rootObject)
                                     throws EvaluationException
        Evaluate this expression against the specified root object.
        Parameters:
        rootObject - the root object against which to evaluate the expression
        Returns:
        the evaluation result
        Throws:
        EvaluationException - if there is a problem during evaluation
      • getValue

        @Nullable
        <T> T getValue(java.lang.Object rootObject,
                                 @Nullable
                                 java.lang.Class<T> desiredResultType)
                          throws EvaluationException
        Evaluate the expression in the default context against the specified root object. If the result of the evaluation does not match (and cannot be converted to) the expected result type then an exception will be returned.
        Parameters:
        rootObject - the root object against which to evaluate the expression
        desiredResultType - the class the caller would like the result to be
        Returns:
        the evaluation result
        Throws:
        EvaluationException - if there is a problem during evaluation
      • getValue

        @Nullable
        java.lang.Object getValue(EvaluationContext context)
                                     throws EvaluationException
        Evaluate this expression in the provided context and return the result of evaluation.
        Parameters:
        context - the context in which to evaluate the expression
        Returns:
        the evaluation result
        Throws:
        EvaluationException - if there is a problem during evaluation
      • getValue

        @Nullable
        java.lang.Object getValue(EvaluationContext context,
                                            java.lang.Object rootObject)
                                     throws EvaluationException
        Evaluate this expression in the provided context and return the result of evaluation, but use the supplied root context as an override for any default root object specified in the context.
        Parameters:
        context - the context in which to evaluate the expression
        rootObject - the root object against which to evaluate the expression
        Returns:
        the evaluation result
        Throws:
        EvaluationException - if there is a problem during evaluation
      • getValue

        @Nullable
        <T> T getValue(EvaluationContext context,
                                 @Nullable
                                 java.lang.Class<T> desiredResultType)
                          throws EvaluationException
        Evaluate the expression in a specified context which can resolve references to properties, methods, types, etc. The type of the evaluation result is expected to be of a particular class and an exception will be thrown if it is not and cannot be converted to that type.
        Parameters:
        context - the context in which to evaluate the expression
        desiredResultType - the class the caller would like the result to be
        Returns:
        the evaluation result
        Throws:
        EvaluationException - if there is a problem during evaluation
      • getValue

        @Nullable
        <T> T getValue(EvaluationContext context,
                                 java.lang.Object rootObject,
                                 @Nullable
                                 java.lang.Class<T> desiredResultType)
                          throws EvaluationException
        Evaluate the expression in a specified context which can resolve references to properties, methods, types, etc. The type of the evaluation result is expected to be of a particular class and an exception will be thrown if it is not and cannot be converted to that type. The supplied root object overrides any default specified on the supplied context.
        Parameters:
        context - the context in which to evaluate the expression
        rootObject - the root object against which to evaluate the expression
        desiredResultType - the class the caller would like the result to be
        Returns:
        the evaluation result
        Throws:
        EvaluationException - if there is a problem during evaluation
      • getValueType

        @Nullable
        java.lang.Class<?> getValueType(java.lang.Object rootObject)
                                           throws EvaluationException
        Return the most general type that can be passed to the setValue(Object, Object) method using the default context.
        Parameters:
        rootObject - the root object against which to evaluate the expression
        Returns:
        the most general type of value that can be set on this context
        Throws:
        EvaluationException - if there is a problem determining the type
      • getValueType

        @Nullable
        java.lang.Class<?> getValueType(EvaluationContext context,
                                                  java.lang.Object rootObject)
                                           throws EvaluationException
        Return the most general type that can be passed to the setValue(EvaluationContext, Object, Object) method for the given context. The supplied root object overrides any specified in the context.
        Parameters:
        context - the context in which to evaluate the expression
        rootObject - the root object against which to evaluate the expression
        Returns:
        the most general type of value that can be set on this context
        Throws:
        EvaluationException - if there is a problem determining the type
      • getValueTypeDescriptor

        @Nullable
        TypeDescriptor getValueTypeDescriptor(java.lang.Object rootObject)
                                                 throws EvaluationException
        Return the most general type that can be passed to the setValue(Object, Object) method using the default context.
        Parameters:
        rootObject - the root object against which to evaluate the expression
        Returns:
        a type descriptor for values that can be set on this context
        Throws:
        EvaluationException - if there is a problem determining the type
      • getValueTypeDescriptor

        @Nullable
        TypeDescriptor getValueTypeDescriptor(EvaluationContext context,
                                                        java.lang.Object rootObject)
                                                 throws EvaluationException
        Return the most general type that can be passed to the setValue(EvaluationContext, Object, Object) method for the given context. The supplied root object overrides any specified in the context.
        Parameters:
        context - the context in which to evaluate the expression
        rootObject - the root object against which to evaluate the expression
        Returns:
        a type descriptor for values that can be set on this context
        Throws:
        EvaluationException - if there is a problem determining the type
      • isWritable

        boolean isWritable(java.lang.Object rootObject)
                    throws EvaluationException
        Determine if an expression can be written to, i.e. setValue() can be called.
        Parameters:
        rootObject - the root object against which to evaluate the expression
        Returns:
        true if the expression is writable; false otherwise
        Throws:
        EvaluationException - if there is a problem determining if it is writable
      • isWritable

        boolean isWritable(EvaluationContext context)
                    throws EvaluationException
        Determine if an expression can be written to, i.e. setValue() can be called.
        Parameters:
        context - the context in which the expression should be checked
        Returns:
        true if the expression is writable; false otherwise
        Throws:
        EvaluationException - if there is a problem determining if it is writable
      • isWritable

        boolean isWritable(EvaluationContext context,
                           java.lang.Object rootObject)
                    throws EvaluationException
        Determine if an expression can be written to, i.e. setValue() can be called. The supplied root object overrides any specified in the context.
        Parameters:
        context - the context in which the expression should be checked
        rootObject - the root object against which to evaluate the expression
        Returns:
        true if the expression is writable; false otherwise
        Throws:
        EvaluationException - if there is a problem determining if it is writable
      • setValue

        void setValue(java.lang.Object rootObject,
                      @Nullable
                      java.lang.Object value)
               throws EvaluationException
        Set this expression in the provided context to the value provided.
        Parameters:
        rootObject - the root object against which to evaluate the expression
        value - the new value
        Throws:
        EvaluationException - if there is a problem during evaluation
      • setValue

        void setValue(EvaluationContext context,
                      @Nullable
                      java.lang.Object value)
               throws EvaluationException
        Set this expression in the provided context to the value provided.
        Parameters:
        context - the context in which to set the value of the expression
        value - the new value
        Throws:
        EvaluationException - if there is a problem during evaluation
      • setValue

        void setValue(EvaluationContext context,
                      java.lang.Object rootObject,
                      @Nullable
                      java.lang.Object value)
               throws EvaluationException
        Set this expression in the provided context to the value provided. The supplied root object overrides any specified in the context.
        Parameters:
        context - the context in which to set the value of the expression
        rootObject - the root object against which to evaluate the expression
        value - the new value
        Throws:
        EvaluationException - if there is a problem during evaluation