public class ForwardOnlyMapIndex extends Object implements 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.Modifier and Type | Field and Description |
---|---|
protected BackingMapContext |
f_ctx
The
context associated with this index. |
protected ValueExtractor |
f_extractor
ValueExtractor object that this MapIndex uses to extract an indexable property value from a [converted] value stored in the resource map.
|
protected boolean |
f_fLazy
The "lazy" flag.
|
protected Map |
f_mapForward
Map that contains the index values (forward index).
|
Constructor and Description |
---|
ForwardOnlyMapIndex(ValueExtractor extractor, BackingMapContext ctx, boolean fOnDemand)
Construct an index for the given map.
|
Modifier and Type | Method and Description |
---|---|
void |
delete(Map.Entry entry)
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 |
equals(Object o)
Compares the specified object with this index for equality.
|
Object |
get(Object oKey)
Using the index information if possible, get the value associated with the specified key.
|
Comparator |
getComparator()
Get the Comparator used to sort the index.
|
Map |
getIndexContents()
Get the Map that contains the index contents.
|
ValueExtractor |
getValueExtractor()
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 |
insert(Map.Entry entry)
Update this index in response to a insert operation on a cache.
|
protected Map |
instantiateForwardIndex()
Instantiate the forward index.
|
boolean |
isOrdered()
Determine if the MapIndex orders the contents of the indexed information.
|
boolean |
isPartial()
Determine if indexed information for any entry in the indexed Map has been excluded from this index.
|
String |
toString()
Returns a string representation of this SimpleMapIndex.
|
void |
update(Map.Entry entry)
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.
|
protected final ValueExtractor f_extractor
protected final Map f_mapForward
protected final BackingMapContext f_ctx
context
associated with this index.protected boolean f_fLazy
public ForwardOnlyMapIndex(ValueExtractor extractor, BackingMapContext ctx, boolean fOnDemand)
extractor
- the ValueExtractor that is used to extract an indexed value from a resource map entryctx
- the context
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 proactivelypublic ValueExtractor getValueExtractor()
getValueExtractor
in interface MapIndex
public boolean isOrdered()
public boolean isPartial()
IndexAwareFilter
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.
public Comparator getComparator()
getComparator
in interface MapIndex
public Map getIndexContents()
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 a Comparator
object associated with it; see SortedMap.comparator()
.
A client should assume that the returned Map object is read-only and must not attempt to modify it.
getIndexContents
in interface MapIndex
public Object get(Object oKey)
get
in interface MapIndex
oKey
- the key that specifies the object to extract the value frompublic void insert(Map.Entry entry)
public void update(Map.Entry entry)
public void delete(Map.Entry entry)
protected Map instantiateForwardIndex()
protected void updateInternal(Map.Entry entry)
entry
- the entry representing the object being updatedprotected void deleteInternal(Map.Entry entry)
entry
- the entry representing the object being removedpublic String toString()
public boolean equals(Object o)