Class ForwardOnlyMapIndex
- All Implemented Interfaces:
MapIndex
MapIndex
implementation that unlike the
SimpleMapIndex
maintains only a forward index and not the inverse index.
As a result, the content of getIndexContents()
is always empty, so this
index cannot be used for querying by IndexAwareFilter
, with its primary use as a deserialization optimization.- Since:
- Coherence 12.1.3
- Author:
- gg/hr/jh 2014.03.07
-
Field Summary
Modifier and TypeFieldDescriptionprotected final BackingMapContext
Thecontext
associated with this index.protected final ValueExtractor
ValueExtractor object that this MapIndex uses to extract an indexable property value from a [converted] value stored in the resource map.protected boolean
The "lazy" flag.protected final Map
Map that contains the index values (forward index). -
Constructor Summary
ConstructorDescriptionForwardOnlyMapIndex
(ValueExtractor extractor, BackingMapContext ctx, boolean fOnDemand) Construct an index for the given map. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Update this index in response to a remove operation on a cache.protected void
deleteInternal
(Map.Entry entry) Update this index in response to a remove operation on a cache.boolean
Compares the specified object with this index for equality.Using the index information if possible, get the value associated with the specified key.Get the Comparator used to sort the index.Get the Map that contains the index contents.Obtain the ValueExtractor object that the MapIndex uses to extract an indexable Object from a value stored in the indexed Map.int
hashCode()
Returns the hash code value for this MapIndex.void
Update this index in response to a insert operation on a cache.protected Map
Instantiate the forward index.boolean
Determine if the MapIndex orders the contents of the indexed information.boolean
Determine if indexed information for any entry in the indexed Map has been excluded from this index.toString()
Returns a string representation of this SimpleMapIndex.void
Update this index in response to an update operation on a cache.protected void
updateInternal
(Map.Entry entry) Update this index in response to an update operation on a cache.
-
Field Details
-
f_extractor
ValueExtractor object that this MapIndex uses to extract an indexable property value from a [converted] value stored in the resource map. -
f_mapForward
Map that contains the index values (forward index). The keys of the Map are the keys to the map being indexed and the values are the extracted values. This map is used by the IndexAwareComparators to avoid a conversion and value extraction steps. -
f_ctx
Thecontext
associated with this index. -
f_fLazy
protected boolean f_fLazyThe "lazy" flag.
-
-
Constructor Details
-
ForwardOnlyMapIndex
Construct an index for the given map.- Parameters:
extractor
- the ValueExtractor that is used to extract an indexed value from a resource map entryctx
- thecontext
associated with the indexed cachefOnDemand
- if true, the forward index will be created "on-demand" as the values are attempted to be accessed; otherwise the forward index is populated proactively
-
-
Method Details
-
getValueExtractor
Obtain the ValueExtractor object that the MapIndex uses to extract an indexable Object from a value stored in the indexed Map. This property is never null.- Specified by:
getValueExtractor
in interfaceMapIndex
- Returns:
- a ValueExtractor object, never null
-
isOrdered
public boolean isOrdered()Determine if the MapIndex orders the contents of the indexed information. To determine in which way the contents are ordered, get the Comparator from the index contents SortedMap object. -
isPartial
public boolean isPartial()Determine if indexed information for any entry in the indexed Map has been excluded from this index. This information is used forIndexAwareFilter
implementations to determine the most optimal way to apply the index.Note: Queries that use a partial index are allowed not to return entries that are not indexed even though they would match the corresponding filter were they evaluated during the full scan (if there were no index). However, it's not allowable for a query to return entries that do not match the corresponding filter, regardless of their presence in the index.
-
getComparator
Get the Comparator used to sort the index.- Specified by:
getComparator
in interfaceMapIndex
- Returns:
- the comparator
-
getIndexContents
Get the Map that contains the index contents.The keys of the Map are the return values from the ValueExtractor operating against the indexed Map's values, and for each key, the corresponding value stored in the Map is a Set of keys to the indexed Map.
If the MapIndex is known to be ordered, then the returned Map object will be an instance of
SortedMap
. The SortedMap may or may not have aComparator
object associated with it; seeSortedMap.comparator()
.A client should assume that the returned Map object is read-only and must not attempt to modify it.
- Specified by:
getIndexContents
in interfaceMapIndex
- Returns:
- a Map (or a SortedMap) of the index contents
-
get
Using the index information if possible, get the value associated with the specified key. This is expected to be more efficient than using the ValueExtractor against an object containing the value, because the index should already have the necessary information at hand.- Specified by:
get
in interfaceMapIndex
- Parameters:
oKey
- the key that specifies the object to extract the value from- Returns:
- the value that would be extracted by this MapIndex's ValueExtractor from the object specified by the passed key; NO_VALUE if the index does not have the necessary information
-
insert
Update this index in response to a insert operation on a cache. -
update
Update this index in response to an update operation on a cache. -
delete
Update this index in response to a remove operation on a cache. -
instantiateForwardIndex
Instantiate the forward index.- Returns:
- the forward index
-
updateInternal
Update this index in response to an update operation on a cache.- Parameters:
entry
- the entry representing the object being updated
-
deleteInternal
Update this index in response to a remove operation on a cache.- Parameters:
entry
- the entry representing the object being removed
-
toString
Returns a string representation of this SimpleMapIndex. -
equals
Compares the specified object with this index for equality. Returns true if the given object is also a SimpleMapIndex and the two represent the same index. -
hashCode
public int hashCode()Returns the hash code value for this MapIndex.
-