Spring Integration

org.springframework.integration.expression
Class ExpressionEvalMap

java.lang.Object
  extended by java.util.AbstractMap<java.lang.String,java.lang.Object>
      extended by 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 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
Author:
Artem Bilan

Nested Class Summary
static class ExpressionEvalMap.ComponentsEvaluationCallback
          The ExpressionEvalMap.EvaluationCallback implementation which evaluates an expression using the provided context, root and returnType variables.
static interface ExpressionEvalMap.EvaluationCallback
          Implementations of this interface can be provided to build 'on demand get(Object) logic' for ExpressionEvalMap.
static class ExpressionEvalMap.ExpressionEvalMapBuilder
          The builder class to instantiate ExpressionEvalMap.
static interface ExpressionEvalMap.ExpressionEvalMapComponentsBuilder
           
static interface ExpressionEvalMap.ExpressionEvalMapFinalBuilder
           
 
Nested classes/interfaces inherited from class java.util.AbstractMap
java.util.AbstractMap.SimpleEntry<K,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V>
 
Nested classes/interfaces inherited from interface java.util.Map
java.util.Map.Entry<K,V>
 
Field Summary
static ExpressionEvalMap.EvaluationCallback SIMPLE_CALLBACK
           
 
Method Summary
 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,org.springframework.expression.Expression> expressions)
           
 java.lang.Object get(java.lang.Object key)
          Gets the value(Expression) for the provided key from original and returns the result of evaluation using evaluationCallback.
 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,? extends java.lang.Object> m)
           
 java.lang.Object remove(java.lang.Object key)
           
 int size()
           
 java.util.Collection<java.lang.Object> values()
           
 
Methods inherited from class java.util.AbstractMap
clone, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

SIMPLE_CALLBACK

public static final ExpressionEvalMap.EvaluationCallback SIMPLE_CALLBACK
Method Detail

get

public java.lang.Object get(java.lang.Object key)
Gets the value(Expression) for the provided key from original and returns the result of evaluation using evaluationCallback.

Specified by:
get in interface java.util.Map<java.lang.String,java.lang.Object>
Overrides:
get in class java.util.AbstractMap<java.lang.String,java.lang.Object>

values

public java.util.Collection<java.lang.Object> values()
Specified by:
values in interface java.util.Map<java.lang.String,java.lang.Object>
Overrides:
values in class java.util.AbstractMap<java.lang.String,java.lang.Object>

containsKey

public boolean containsKey(java.lang.Object key)
Specified by:
containsKey in interface java.util.Map<java.lang.String,java.lang.Object>
Overrides:
containsKey in class java.util.AbstractMap<java.lang.String,java.lang.Object>

keySet

public java.util.Set<java.lang.String> keySet()
Specified by:
keySet in interface java.util.Map<java.lang.String,java.lang.Object>
Overrides:
keySet in class java.util.AbstractMap<java.lang.String,java.lang.Object>

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface java.util.Map<java.lang.String,java.lang.Object>
Overrides:
isEmpty in class java.util.AbstractMap<java.lang.String,java.lang.Object>

size

public int size()
Specified by:
size in interface java.util.Map<java.lang.String,java.lang.Object>
Overrides:
size in class java.util.AbstractMap<java.lang.String,java.lang.Object>

equals

public boolean equals(java.lang.Object o)
Specified by:
equals in interface java.util.Map<java.lang.String,java.lang.Object>
Overrides:
equals in class java.util.AbstractMap<java.lang.String,java.lang.Object>

hashCode

public int hashCode()
Specified by:
hashCode in interface java.util.Map<java.lang.String,java.lang.Object>
Overrides:
hashCode in class java.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 interface java.util.Map<java.lang.String,java.lang.Object>
Specified by:
entrySet in class java.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 interface java.util.Map<java.lang.String,java.lang.Object>
Overrides:
put in class java.util.AbstractMap<java.lang.String,java.lang.Object>

putAll

public void putAll(java.util.Map<? extends java.lang.String,? extends java.lang.Object> m)
Specified by:
putAll in interface java.util.Map<java.lang.String,java.lang.Object>
Overrides:
putAll in class java.util.AbstractMap<java.lang.String,java.lang.Object>

clear

public void clear()
Specified by:
clear in interface java.util.Map<java.lang.String,java.lang.Object>
Overrides:
clear in class java.util.AbstractMap<java.lang.String,java.lang.Object>

containsValue

public boolean containsValue(java.lang.Object value)
Specified by:
containsValue in interface java.util.Map<java.lang.String,java.lang.Object>
Overrides:
containsValue in class java.util.AbstractMap<java.lang.String,java.lang.Object>

remove

public java.lang.Object remove(java.lang.Object key)
Specified by:
remove in interface java.util.Map<java.lang.String,java.lang.Object>
Overrides:
remove in class java.util.AbstractMap<java.lang.String,java.lang.Object>

from

public static ExpressionEvalMap.ExpressionEvalMapBuilder from(java.util.Map<java.lang.String,org.springframework.expression.Expression> expressions)

Spring Integration