Class FunctionExpression<S>

java.lang.Object
org.springframework.integration.expression.FunctionExpression<S>
Type Parameters:
S - The evaluation context root object type.
All Implemented Interfaces:
org.springframework.expression.Expression

public class FunctionExpression<S>
extends java.lang.Object
implements org.springframework.expression.Expression
An Expression that simply invokes Function.apply(Object) on its provided Function.

This is a powerful alternative to the SpEL, when Java 8 and its Lambda support is in use.

If the target component has support for an Expression property, a FunctionExpression can be specified instead of a SpelExpression as an alternative to evaluate the value from the Lambda, rather than runtime SpEL resolution.

The FunctionExpression is 'read-only', hence only getValue() operations are allowed. Any setValue(org.springframework.expression.EvaluationContext, java.lang.Object) operations and getValueType() related operations throw EvaluationException.

Since:
5.0
  • Constructor Summary

    Constructors 
    Constructor Description
    FunctionExpression​(java.util.function.Function<S,​?> function)  
  • Method Summary

    Modifier and Type Method Description
    java.lang.String getExpressionString()  
    java.lang.Object getValue()  
    <T> T getValue​(java.lang.Class<T> desiredResultType)  
    java.lang.Object getValue​(java.lang.Object rootObject)  
    <T> T getValue​(java.lang.Object rootObject, java.lang.Class<T> desiredResultType)  
    java.lang.Object getValue​(org.springframework.expression.EvaluationContext context)  
    <T> T getValue​(org.springframework.expression.EvaluationContext context, java.lang.Class<T> desiredResultType)  
    java.lang.Object getValue​(org.springframework.expression.EvaluationContext context, java.lang.Object rootObject)  
    <T> T getValue​(org.springframework.expression.EvaluationContext context, java.lang.Object rootObject, java.lang.Class<T> desiredResultType)  
    java.lang.Class<?> getValueType()  
    java.lang.Class<?> getValueType​(java.lang.Object rootObject)  
    java.lang.Class<?> getValueType​(org.springframework.expression.EvaluationContext context)  
    java.lang.Class<?> getValueType​(org.springframework.expression.EvaluationContext context, java.lang.Object rootObject)  
    org.springframework.core.convert.TypeDescriptor getValueTypeDescriptor()  
    org.springframework.core.convert.TypeDescriptor getValueTypeDescriptor​(java.lang.Object rootObject)  
    org.springframework.core.convert.TypeDescriptor getValueTypeDescriptor​(org.springframework.expression.EvaluationContext context)  
    org.springframework.core.convert.TypeDescriptor getValueTypeDescriptor​(org.springframework.expression.EvaluationContext context, java.lang.Object rootObject)  
    boolean isWritable​(java.lang.Object rootObject)  
    boolean isWritable​(org.springframework.expression.EvaluationContext context)  
    boolean isWritable​(org.springframework.expression.EvaluationContext context, java.lang.Object rootObject)  
    void setValue​(java.lang.Object rootObject, java.lang.Object value)  
    void setValue​(org.springframework.expression.EvaluationContext context, java.lang.Object value)  
    void setValue​(org.springframework.expression.EvaluationContext context, java.lang.Object rootObject, java.lang.Object value)  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • FunctionExpression

      public FunctionExpression​(java.util.function.Function<S,​?> function)
  • Method Details

    • getValue

      @Nullable public java.lang.Object getValue() throws org.springframework.expression.EvaluationException
      Specified by:
      getValue in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValue

      @Nullable public java.lang.Object getValue​(@Nullable java.lang.Object rootObject) throws org.springframework.expression.EvaluationException
      Specified by:
      getValue in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValue

      @Nullable public <T> T getValue​(@Nullable java.lang.Class<T> desiredResultType) throws org.springframework.expression.EvaluationException
      Specified by:
      getValue in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValue

      @Nullable public <T> T getValue​(@Nullable java.lang.Object rootObject, @Nullable java.lang.Class<T> desiredResultType) throws org.springframework.expression.EvaluationException
      Specified by:
      getValue in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValue

      @Nullable public java.lang.Object getValue​(org.springframework.expression.EvaluationContext context) throws org.springframework.expression.EvaluationException
      Specified by:
      getValue in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValue

      @Nullable public java.lang.Object getValue​(org.springframework.expression.EvaluationContext context, @Nullable java.lang.Object rootObject) throws org.springframework.expression.EvaluationException
      Specified by:
      getValue in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValue

      @Nullable public <T> T getValue​(org.springframework.expression.EvaluationContext context, @Nullable java.lang.Class<T> desiredResultType) throws org.springframework.expression.EvaluationException
      Specified by:
      getValue in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValue

      @Nullable public <T> T getValue​(org.springframework.expression.EvaluationContext context, @Nullable java.lang.Object rootObject, @Nullable java.lang.Class<T> desiredResultType) throws org.springframework.expression.EvaluationException
      Specified by:
      getValue in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValueType

      public java.lang.Class<?> getValueType() throws org.springframework.expression.EvaluationException
      Specified by:
      getValueType in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValueType

      public java.lang.Class<?> getValueType​(@Nullable java.lang.Object rootObject) throws org.springframework.expression.EvaluationException
      Specified by:
      getValueType in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValueType

      public java.lang.Class<?> getValueType​(org.springframework.expression.EvaluationContext context) throws org.springframework.expression.EvaluationException
      Specified by:
      getValueType in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValueType

      public java.lang.Class<?> getValueType​(org.springframework.expression.EvaluationContext context, @Nullable java.lang.Object rootObject) throws org.springframework.expression.EvaluationException
      Specified by:
      getValueType in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValueTypeDescriptor

      public org.springframework.core.convert.TypeDescriptor getValueTypeDescriptor() throws org.springframework.expression.EvaluationException
      Specified by:
      getValueTypeDescriptor in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValueTypeDescriptor

      public org.springframework.core.convert.TypeDescriptor getValueTypeDescriptor​(@Nullable java.lang.Object rootObject) throws org.springframework.expression.EvaluationException
      Specified by:
      getValueTypeDescriptor in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValueTypeDescriptor

      public org.springframework.core.convert.TypeDescriptor getValueTypeDescriptor​(org.springframework.expression.EvaluationContext context) throws org.springframework.expression.EvaluationException
      Specified by:
      getValueTypeDescriptor in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValueTypeDescriptor

      public org.springframework.core.convert.TypeDescriptor getValueTypeDescriptor​(org.springframework.expression.EvaluationContext context, @Nullable java.lang.Object rootObject) throws org.springframework.expression.EvaluationException
      Specified by:
      getValueTypeDescriptor in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • setValue

      public void setValue​(org.springframework.expression.EvaluationContext context, @Nullable java.lang.Object value) throws org.springframework.expression.EvaluationException
      Specified by:
      setValue in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • setValue

      public void setValue​(@Nullable java.lang.Object rootObject, @Nullable java.lang.Object value) throws org.springframework.expression.EvaluationException
      Specified by:
      setValue in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • setValue

      public void setValue​(org.springframework.expression.EvaluationContext context, @Nullable java.lang.Object rootObject, @Nullable java.lang.Object value) throws org.springframework.expression.EvaluationException
      Specified by:
      setValue in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • isWritable

      public boolean isWritable​(org.springframework.expression.EvaluationContext context) throws org.springframework.expression.EvaluationException
      Specified by:
      isWritable in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • isWritable

      public boolean isWritable​(org.springframework.expression.EvaluationContext context, @Nullable java.lang.Object rootObject) throws org.springframework.expression.EvaluationException
      Specified by:
      isWritable in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • isWritable

      public boolean isWritable​(@Nullable java.lang.Object rootObject) throws org.springframework.expression.EvaluationException
      Specified by:
      isWritable in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getExpressionString

      public final java.lang.String getExpressionString()
      Specified by:
      getExpressionString in interface org.springframework.expression.Expression