Class FilteringIndexStoreStrategy
java.lang.Object
org.apache.jackrabbit.oak.plugins.index.property.strategy.FilteringIndexStoreStrategy
- All Implemented Interfaces:
IndexStoreStrategy
A delegating IndexStoreStrategy that filters out updates that are not
accepted by the given predicate
-
Constructor Summary
ConstructorsConstructorDescriptionFilteringIndexStoreStrategy(IndexStoreStrategy strategy, Predicate<String> filter) FilteringIndexStoreStrategy(IndexStoreStrategy strategy, Predicate<String> filter, boolean readOnly) -
Method Summary
Modifier and TypeMethodDescriptionlongCount the occurrence of a given set of values.longCount the occurrence of a given set of values.booleanexists(Supplier<NodeBuilder> index, String key) Check whether an entry for the given key exists.Search for a given set of values.voidupdate(Supplier<NodeBuilder> index, String path, String indexName, NodeBuilder indexMeta, Set<String> beforeKeys, Set<String> afterKeys) Updates the index for the given path.
-
Constructor Details
-
FilteringIndexStoreStrategy
-
FilteringIndexStoreStrategy
public FilteringIndexStoreStrategy(IndexStoreStrategy strategy, Predicate<String> filter, boolean readOnly)
-
-
Method Details
-
update
public void update(Supplier<NodeBuilder> index, String path, String indexName, NodeBuilder indexMeta, Set<String> beforeKeys, Set<String> afterKeys) throws CommitFailedException Description copied from interface:IndexStoreStrategyUpdates the index for the given path.- Specified by:
updatein interfaceIndexStoreStrategy- Parameters:
index- the index node supplierpath- path stored in the indexindexName- the name of the index. May be null.indexMeta- the definition of the index. May be null.beforeKeys- keys that no longer apply to the pathafterKeys- keys that now do apply to the path- Throws:
CommitFailedException
-
exists
Description copied from interface:IndexStoreStrategyCheck whether an entry for the given key exists.- Specified by:
existsin interfaceIndexStoreStrategy- Parameters:
index- the index node supplierkey- the key- Returns:
- true if at least one entry exists
-
query
public Iterable<String> query(Filter filter, String indexName, NodeState indexMeta, Iterable<String> values) Description copied from interface:IndexStoreStrategySearch for a given set of values.- Specified by:
queryin interfaceIndexStoreStrategy- Parameters:
filter- the filter (can optionally be used for optimized query execution)indexName- the name of the index (for logging)indexMeta- the index metadata node (may not be null)values- values to look for (null to check for property existence)- Returns:
- an iterator of paths
-
count
Description copied from interface:IndexStoreStrategyCount the occurrence of a given set of values. Used in calculating the cost of an index.- Specified by:
countin interfaceIndexStoreStrategy- Parameters:
root- the root node (may not be null)indexMeta- the index metadata node (may not be null)values- values to look for (null to check for property existence)max- the maximum value to return- Returns:
- the aggregated count of occurrences for each provided value
-
count
Description copied from interface:IndexStoreStrategyCount the occurrence of a given set of values. Used in calculating the cost of an index.- Specified by:
countin interfaceIndexStoreStrategy- Parameters:
filter- the filter which can be used to estimate better costroot- the root node (may not be null)indexMeta- the index metadata node (may not be null)values- values to look for (null to check for property existence)max- the maximum value to return- Returns:
- the aggregated count of occurrences for each provided value
-
getIndexNodeName
- Specified by:
getIndexNodeNamein interfaceIndexStoreStrategy
-