K
- the type of the Map entry keysV
- the type of the Map entry valuespublic interface QueryMap<K,V> extends Map<K,V>
Modifier and Type | Interface and Description |
---|---|
static interface |
QueryMap.Entry<K,V>
A QueryMap Entry exposes additional index-related operation that the basic Map Entry does not.
|
Modifier and Type | Method and Description |
---|---|
<T,E> void |
addIndex(ValueExtractor<? super T,? extends E> extractor, boolean fOrdered, Comparator<? super E> comparator)
Add an index to this QueryMap.
|
Set<Map.Entry<K,V>> |
entrySet(Filter filter)
Return a set view of the entries contained in this map that satisfy the criteria expressed by the filter.
|
Set<Map.Entry<K,V>> |
entrySet(Filter filter, Comparator comparator)
Return a set view of the entries contained in this map that satisfy the criteria expressed by the filter.
|
default void |
forEach(BiConsumer<? super K,? super V> action)
Perform the given action for each entry in this map until all entries have been processed or the action throws an exception.
|
default void |
forEach(Filter filter, BiConsumer<? super K,? super V> action)
Perform the given action for each entry selected by the specified filter until all entries have been processed or the action throws an exception.
|
Set<K> |
keySet(Filter filter)
Return a set view of the keys contained in this map for entries that satisfy the criteria expressed by the filter.
|
<T,E> void |
removeIndex(ValueExtractor<? super T,? extends E> extractor)
Remove an index from this QueryMap.
|
default Collection<V> |
values(Filter filter)
Return a collection of the values contained in this map that satisfy the criteria expressed by the filter.
|
default Collection<V> |
values(Filter filter, Comparator comparator)
Return a collection of the values contained in this map that satisfy the criteria expressed by the filter.
|
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values
Set<K> keySet(Filter filter)
Unlike the Map.keySet()
method, the set returned by this method may not be backed by the map, so changes to the set may not reflected in the map, and vice-versa.
Note: When using the Coherence Enterprise Edition or Grid Edition, the Partitioned Cache implements the QueryMap interface using the Parallel Query feature. When using Coherence Standard Edition, the Parallel Query feature is not available, resulting in lower performance for most queries, and particularly when querying large data sets.
filter
- the Filter object representing the criteria that the entries of this map should satisfySet<Map.Entry<K,V>> entrySet(Filter filter)
Map.Entry
.
Unlike the Map.entrySet()
method, the set returned by this method may not be backed by the map, so changes to the set may not be reflected in the map, and vice-versa.
Note: When using the Coherence Enterprise Edition or Grid Edition, the Partitioned Cache implements the QueryMap interface using the Parallel Query feature. When using Coherence Standard Edition, the Parallel Query feature is not available, resulting in lower performance for most queries, and particularly when querying large data sets.
filter
- the Filter object representing the criteria that the entries of this map should satisfySet<Map.Entry<K,V>> entrySet(Filter filter, Comparator comparator)
Map.Entry
. It is further guaranteed that its iterator will traverse the set in such a way that the entry values come up in ascending order, sorted by the specified Comparator or according to the natural ordering (see Comparable
).
Unlike the Map.entrySet()
method, the set returned by this method may not be backed by the map, so changes to the set may not be reflected in the map, and vice-versa.
Note: When using the Coherence Enterprise Edition or Grid Edition, the Partitioned Cache implements the QueryMap interface using the Parallel Query feature. When using Coherence Standard Edition, the Parallel Query feature is not available, resulting in lower performance for most queries, and particularly when querying large data sets.
filter
- the Filter object representing the criteria that the entries of this map should satisfycomparator
- the Comparator object which imposes an ordering on entries in the resulting set; or null if the entries' values natural ordering should be usedChainedComparator
default Collection<V> values(Filter filter)
Unlike the Map.values()
method, the collection returned by this method may not be backed by the map, so changes to the collection may not be reflected in the map, and vice-versa.
Note: When using the Coherence Enterprise Edition or Grid Edition, the Partitioned Cache implements the QueryMap interface using the Parallel Query feature. When using Coherence Standard Edition, the Parallel Query feature is not available, resulting in lower performance for most queries, and particularly when querying large data sets.
filter
- the Filter object representing the criteria that the entries of this map should satisfydefault Collection<V> values(Filter filter, Comparator comparator)
Unlike the Map.values()
method, the collection returned by this method may not be backed by the map, so changes to the collection may not be reflected in the map, and vice-versa.
Note: When using the Coherence Enterprise Edition or Grid Edition, the Partitioned Cache implements the QueryMap interface using the Parallel Query feature. When using Coherence Standard Edition, the Parallel Query feature is not available, resulting in lower performance for most queries, and particularly when querying large data sets.
filter
- the Filter object representing the criteria that the entries of this map should satisfycomparator
- the Comparator object which imposes an ordering on entries in the resulting set; or null if the entries' values natural ordering should be usedChainedComparator
<T,E> void addIndex(ValueExtractor<? super T,? extends E> extractor, boolean fOrdered, Comparator<? super E> comparator)
The ordering maintained by this map (as determined by either the specified Comparator or the natural ordering of the indexed values) must be consistent with equals (see Comparable
or Comparator
for a precise definition of consistent with equals.)
This method is only intended as a hint to the cache implementation, and as such it may be ignored by the cache if indexes are not supported or if the desired index (or a similar index) already exists. It is expected that an application will call this method to suggest an index even if the index may already exist, just so that the application is certain that index has been suggested. For example in a distributed environment, each server will likely suggest the same set of indexes when it starts, and there is no downside to the application blindly requesting those indexes regardless of whether another server has already requested the same indexes.
Note: Indexes are a feature of Coherence Enterprise Edition and Coherence Grid Edition. This method will have no effect when using Coherence Standard Edition.
T
- the type of the value to extract fromE
- the type of value that will be extractedextractor
- the ValueExtractor object that is used to extract an indexable Object from a value stored in the indexed Map. Must not be null.fOrdered
- true iff the contents of the indexed information should be ordered; false otherwisecomparator
- the Comparator object which imposes an ordering on entries in the indexed map; or null if the entries' values natural ordering should be usedReflectionExtractor
, ChainedComparator
<T,E> void removeIndex(ValueExtractor<? super T,? extends E> extractor)
T
- the type of the value to extract fromE
- the type of value that will be extractedextractor
- the ValueExtractor object that is used to extract an indexable Object from a value stored in the Map.default void forEach(BiConsumer<? super K,? super V> action)
Exceptions thrown by the action are relayed to the caller.
The implementation processes each entry on the client and should only be used for read-only client-side operations (such as adding map entries to a UI widget, for example).
Any entry mutation caused by the specified action will not be propagated to the server when this method is called on a distributed map, so it should be avoided. The mutating operations on a subset of entries should be implemented using one of InvocableMap.invokeAll(com.tangosol.util.InvocableMap.EntryProcessor<K, V, R>)
, Map.replaceAll(java.util.function.BiFunction<? super K, ? super V, ? extends V>)
, Map.compute(K, java.util.function.BiFunction<? super K, ? super V, ? extends V>)
, or Map.merge(K, V, java.util.function.BiFunction<? super V, ? super V, ? extends V>)
methods instead.
default void forEach(Filter filter, BiConsumer<? super K,? super V> action)
Exceptions thrown by the action are relayed to the caller.
The implementation processes each entry on the client and should only be used for read-only client-side operations (such as adding map entries to a UI widget, for example).
Any entry mutation caused by the specified action will not be propagated to the server when this method is called on a distributed map, so it should be avoided. The mutating operations on a subset of entries should be implemented using one of InvocableMap.invokeAll(com.tangosol.util.InvocableMap.EntryProcessor<K, V, R>)
, Map.replaceAll(java.util.function.BiFunction<? super K, ? super V, ? extends V>)
, Map.compute(K, java.util.function.BiFunction<? super K, ? super V, ? extends V>)
, or Map.merge(K, V, java.util.function.BiFunction<? super V, ? super V, ? extends V>)
methods instead.
filter
- the filter that should be used to select entriesaction
- the action to be performed for each entry