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.StringgetExpressionString()java.lang.ObjectgetValue()<T> TgetValue(java.lang.Class<T> desiredResultType)java.lang.ObjectgetValue(java.lang.Object rootObject)<T> TgetValue(java.lang.Object rootObject, java.lang.Class<T> desiredResultType)java.lang.ObjectgetValue(org.springframework.expression.EvaluationContext context)<T> TgetValue(org.springframework.expression.EvaluationContext context, java.lang.Class<T> desiredResultType)java.lang.ObjectgetValue(org.springframework.expression.EvaluationContext context, java.lang.Object rootObject)<T> TgetValue(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.TypeDescriptorgetValueTypeDescriptor()org.springframework.core.convert.TypeDescriptorgetValueTypeDescriptor(java.lang.Object rootObject)org.springframework.core.convert.TypeDescriptorgetValueTypeDescriptor(org.springframework.expression.EvaluationContext context)org.springframework.core.convert.TypeDescriptorgetValueTypeDescriptor(org.springframework.expression.EvaluationContext context, java.lang.Object rootObject)booleanisWritable(java.lang.Object rootObject)booleanisWritable(org.springframework.expression.EvaluationContext context)booleanisWritable(org.springframework.expression.EvaluationContext context, java.lang.Object rootObject)voidsetValue(java.lang.Object rootObject, java.lang.Object value)voidsetValue(org.springframework.expression.EvaluationContext context, java.lang.Object value)voidsetValue(org.springframework.expression.EvaluationContext context, java.lang.Object rootObject, java.lang.Object value)
-
Constructor Details
-
Method Details
-
getValue
@Nullable public java.lang.Object getValue() throws org.springframework.expression.EvaluationException- Specified by:
getValuein interfaceorg.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:
getValuein interfaceorg.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:
getValuein interfaceorg.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:
getValuein interfaceorg.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:
getValuein interfaceorg.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:
getValuein interfaceorg.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:
getValuein interfaceorg.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:
getValuein interfaceorg.springframework.expression.Expression- Throws:
org.springframework.expression.EvaluationException
-
getValueType
public java.lang.Class<?> getValueType() throws org.springframework.expression.EvaluationException- Specified by:
getValueTypein interfaceorg.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:
getValueTypein interfaceorg.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:
getValueTypein interfaceorg.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:
getValueTypein interfaceorg.springframework.expression.Expression- Throws:
org.springframework.expression.EvaluationException
-
getValueTypeDescriptor
public org.springframework.core.convert.TypeDescriptor getValueTypeDescriptor() throws org.springframework.expression.EvaluationException- Specified by:
getValueTypeDescriptorin interfaceorg.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:
getValueTypeDescriptorin interfaceorg.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:
getValueTypeDescriptorin interfaceorg.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:
getValueTypeDescriptorin interfaceorg.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:
setValuein interfaceorg.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:
setValuein interfaceorg.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:
setValuein interfaceorg.springframework.expression.Expression- Throws:
org.springframework.expression.EvaluationException
-
isWritable
public boolean isWritable(org.springframework.expression.EvaluationContext context) throws org.springframework.expression.EvaluationException- Specified by:
isWritablein interfaceorg.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:
isWritablein interfaceorg.springframework.expression.Expression- Throws:
org.springframework.expression.EvaluationException
-
isWritable
public boolean isWritable(@Nullable java.lang.Object rootObject) throws org.springframework.expression.EvaluationException- Specified by:
isWritablein interfaceorg.springframework.expression.Expression- Throws:
org.springframework.expression.EvaluationException
-
getExpressionString
public final java.lang.String getExpressionString()- Specified by:
getExpressionStringin interfaceorg.springframework.expression.Expression
-