Class SupplierExpression<T>

java.lang.Object
org.springframework.integration.expression.SupplierExpression<T>
Type Parameters:
T - The type the Supplier will return.
All Implemented Interfaces:
org.springframework.expression.Expression

public class SupplierExpression<T> extends Object implements org.springframework.expression.Expression
An Expression that simply invokes Supplier.get() on its provided Supplier.

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 SupplierExpression can be specified instead of a SpelExpression as an alternative to evaluate the value from the Lambda, rather than runtime SpEL resolution.

The SupplierExpression 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 Details

    • SupplierExpression

      public SupplierExpression(Supplier<T> supplier)
  • Method Details

    • getValue

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

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

      public <C> C getValue(Class<C> desiredResultType) throws org.springframework.expression.EvaluationException
      Specified by:
      getValue in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValue

      public <C> C getValue(Object rootObject, Class<C> desiredResultType) throws org.springframework.expression.EvaluationException
      Specified by:
      getValue in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValue

      public 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

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

      public <C> C getValue(org.springframework.expression.EvaluationContext context, Class<C> desiredResultType) throws org.springframework.expression.EvaluationException
      Specified by:
      getValue in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getValue

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

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

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

      public 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 Class<?> getValueType(org.springframework.expression.EvaluationContext context, 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(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, 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, 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(Object rootObject, 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, Object rootObject, 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, 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(Object rootObject) throws org.springframework.expression.EvaluationException
      Specified by:
      isWritable in interface org.springframework.expression.Expression
      Throws:
      org.springframework.expression.EvaluationException
    • getExpressionString

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