public final class TransformingMap<K,InternalV,ExternalV>
extends java.util.AbstractMap<K,ExternalV>
Map<K, InternalV> values, and exposes the
features of a Map<K, ExternalV> applying transformations to the values.
The transformations are applied "just in time", that is, the values are converted only when they are used, not during the construction of the TransformingMap.
For instance, if you have a Map<String, String> and you want to convert its values
"just in time" to integers, you use a TransformingMap<String, String, Integer>.
To get one, you create these three functions:
containsKey(Object) method of the TransformingMap. If its argument is
an Integer then it should convert it to an String in the same way as the write transformation.
Otherwise, it is free to try to convert it to a String if possible, or not to.
| Constructor and Description |
|---|
TransformingMap(java.util.Map<K,InternalV> map,
java.util.function.Function<? super InternalV,? extends ExternalV> readTransformation,
java.util.function.Function<? super ExternalV,? extends InternalV> writeTransformation,
java.util.function.Function<java.lang.Object,java.lang.Object> searchTransformation)
Create a new TransformingMap.
|
| Modifier and Type | Method and Description |
|---|---|
void |
clear() |
ExternalV |
compute(K key,
java.util.function.BiFunction<? super K,? super ExternalV,? extends ExternalV> remappingFunction) |
ExternalV |
computeIfAbsent(K key,
java.util.function.Function<? super K,? extends ExternalV> mappingFunction) |
ExternalV |
computeIfPresent(K key,
java.util.function.BiFunction<? super K,? super ExternalV,? extends ExternalV> remappingFunction) |
boolean |
containsKey(java.lang.Object key) |
boolean |
containsValue(java.lang.Object value) |
java.util.Set<java.util.Map.Entry<K,ExternalV>> |
entrySet() |
void |
forEach(java.util.function.BiConsumer<? super K,? super ExternalV> action) |
ExternalV |
get(java.lang.Object key) |
ExternalV |
getOrDefault(java.lang.Object key,
ExternalV defaultValue) |
boolean |
isEmpty() |
java.util.Set<K> |
keySet() |
ExternalV |
merge(K key,
ExternalV value,
java.util.function.BiFunction<? super ExternalV,? super ExternalV,? extends ExternalV> remappingFunction) |
ExternalV |
put(K key,
ExternalV value) |
void |
putAll(java.util.Map<? extends K,? extends ExternalV> m) |
ExternalV |
putIfAbsent(K key,
ExternalV value) |
ExternalV |
remove(java.lang.Object key) |
boolean |
remove(java.lang.Object key,
java.lang.Object value) |
ExternalV |
replace(K key,
ExternalV value) |
boolean |
replace(K key,
ExternalV oldValue,
ExternalV newValue) |
void |
replaceAll(java.util.function.BiFunction<? super K,? super ExternalV,? extends ExternalV> function) |
int |
size() |
java.util.Collection<ExternalV> |
values() |
public TransformingMap(java.util.Map<K,InternalV> map, java.util.function.Function<? super InternalV,? extends ExternalV> readTransformation, java.util.function.Function<? super ExternalV,? extends InternalV> writeTransformation, java.util.function.Function<java.lang.Object,java.lang.Object> searchTransformation)
map - the internal map to usereadTransformation - the parse transformation (see javadoc of the class)writeTransformation - the write transformation (see javadoc of the class)searchTransformation - the search transformation (see javadoc of the class)public int size()
public boolean isEmpty()
public boolean containsKey(java.lang.Object key)
public boolean containsValue(java.lang.Object value)
public ExternalV get(java.lang.Object key)
public ExternalV remove(java.lang.Object key)
public void clear()
public java.util.Set<K> keySet()
public java.util.Collection<ExternalV> values()
public void replaceAll(java.util.function.BiFunction<? super K,? super ExternalV,? extends ExternalV> function)
public boolean remove(java.lang.Object key,
java.lang.Object value)
public ExternalV computeIfAbsent(K key, java.util.function.Function<? super K,? extends ExternalV> mappingFunction)
public ExternalV computeIfPresent(K key, java.util.function.BiFunction<? super K,? super ExternalV,? extends ExternalV> remappingFunction)
public ExternalV compute(K key, java.util.function.BiFunction<? super K,? super ExternalV,? extends ExternalV> remappingFunction)