Class ExpressionEvalMap
java.lang.Object
java.util.AbstractMap<java.lang.String,java.lang.Object>
org.springframework.integration.expression.ExpressionEvalMap
- All Implemented Interfaces:
java.util.Map<java.lang.String,java.lang.Object>
public final class ExpressionEvalMap
extends java.util.AbstractMap<java.lang.String,java.lang.Object>
An immutable AbstractMap
implementation that wraps a Map<String, Object>
,
where values must be instances of String
or Expression
,
and evaluates an expression
for the provided key
from the underlying
original
Map.
Any mutating operations (put(String, Object)
, remove(Object)
etc.)
are not allowed on instances of this class. Mutation can be performed on underlying Map
if it supports it.
A ExpressionEvalMap.ExpressionEvalMapBuilder
must be used to instantiate this class
via its from(Map)
method:
ExpressionEvalMap evalMap = ExpressionEvalMap
.from(expressions)
.usingCallback(new EvaluationCallback() {
Object evaluate(Expression expression) {
// return some expression evaluation
}
})
.build();
Thread-safety depends on the original underlying Map. Objects of this class are not serializable.
- Since:
- 3.0
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ExpressionEvalMap.ComponentsEvaluationCallback
TheExpressionEvalMap.EvaluationCallback
implementation which evaluates an expression using the providedcontext
,root
andreturnType
variables.static interface
ExpressionEvalMap.EvaluationCallback
Implementations of this interface can be provided to build 'on demandget(Object)
logic' forExpressionEvalMap
.static class
ExpressionEvalMap.ExpressionEvalMapBuilder
The builder class to instantiateExpressionEvalMap
.static interface
ExpressionEvalMap.ExpressionEvalMapComponentsBuilder
static interface
ExpressionEvalMap.ExpressionEvalMapFinalBuilder
-
Field Summary
Fields Modifier and Type Field Description static ExpressionEvalMap.EvaluationCallback
SIMPLE_CALLBACK
-
Method Summary
Modifier and Type Method Description void
clear()
boolean
containsKey(java.lang.Object key)
boolean
containsValue(java.lang.Object value)
java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.Object>>
entrySet()
boolean
equals(java.lang.Object o)
static ExpressionEvalMap.ExpressionEvalMapBuilder
from(java.util.Map<java.lang.String,?> expressions)
java.lang.Object
get(java.lang.Object key)
Gets thevalue
(Expression
) for the providedkey
fromoriginal
and returns the result of evaluation usingevaluationCallback
.int
hashCode()
boolean
isEmpty()
java.util.Set<java.lang.String>
keySet()
java.lang.Object
put(java.lang.String key, java.lang.Object value)
void
putAll(java.util.Map<? extends java.lang.String,?> m)
java.lang.Object
remove(java.lang.Object key)
int
size()
java.lang.String
toString()
java.util.Collection<java.lang.Object>
values()
-
Field Details
-
Method Details
-
get
@Nullable public java.lang.Object get(java.lang.Object key)Gets thevalue
(Expression
) for the providedkey
fromoriginal
and returns the result of evaluation usingevaluationCallback
.- Specified by:
get
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
get
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
entrySet
public java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.Object>> entrySet()- Specified by:
entrySet
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Specified by:
entrySet
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
values
public java.util.Collection<java.lang.Object> values()- Specified by:
values
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
values
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
containsKey
public boolean containsKey(java.lang.Object key)- Specified by:
containsKey
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
containsKey
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
keySet
public java.util.Set<java.lang.String> keySet()- Specified by:
keySet
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
keySet
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
isEmpty
public boolean isEmpty()- Specified by:
isEmpty
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
isEmpty
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
size
public int size()- Specified by:
size
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
size
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
equals
public boolean equals(java.lang.Object o)- Specified by:
equals
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
equals
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
hashCode
public int hashCode()- Specified by:
hashCode
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
hashCode
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
toString
public java.lang.String toString()- Overrides:
toString
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
put
public java.lang.Object put(java.lang.String key, java.lang.Object value)- Specified by:
put
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
put
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
putAll
public void putAll(java.util.Map<? extends java.lang.String,?> m)- Specified by:
putAll
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
putAll
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
clear
public void clear()- Specified by:
clear
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
clear
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
containsValue
public boolean containsValue(java.lang.Object value)- Specified by:
containsValue
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
containsValue
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
remove
public java.lang.Object remove(java.lang.Object key)- Specified by:
remove
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
remove
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
from
public static ExpressionEvalMap.ExpressionEvalMapBuilder from(java.util.Map<java.lang.String,?> expressions)
-