Interface BloomFilterProducer
- All Known Implementing Classes:
LayeredBloomFilter
,LayerManager
public interface BloomFilterProducer
Produces Bloom filters from a collection (e.g. LayeredBloomFilter).
- Since:
- 4.5
-
Method Summary
Modifier and TypeMethodDescriptiondefault BloomFilter[]
Return an array of the Bloom filters in the collection.default BloomFilter
flatten()
Create a standard (non-layered) Bloom filter by merging all of the layers.boolean
forEachBloomFilter
(Predicate<BloomFilter> bloomFilterPredicate) Executes a Bloom filter Predicate on each Bloom filter in the collection.default boolean
Applies thefunc
to each Bloom filter pair in order.static BloomFilterProducer
fromBloomFilterArray
(BloomFilter... filters) Creates a BloomFilterProducer from an array of Bloom filters.
-
Method Details
-
fromBloomFilterArray
Creates a BloomFilterProducer from an array of Bloom filters.- The asBloomFilterArray() method returns a copy of the original array with references to the original filters.
- The forEachBloomFilterPair() method uses references to the original filters.
All modifications to the Bloom filters are reflected in the original filters
- Parameters:
filters
- The filters to be returned by the producer.- Returns:
- THe BloomFilterProducer containing the filters.
-
asBloomFilterArray
Return an array of the Bloom filters in the collection.Implementations should specify if the array contains deep copies, immutable instances, or references to the filters in the collection.
The default method returns a deep copy of the enclosed filters.
- Returns:
- An array of Bloom filters.
-
flatten
Create a standard (non-layered) Bloom filter by merging all of the layers. If the filter is empty this method will return an empty Bloom filter.- Returns:
- the merged bloom filter.
-
forEachBloomFilter
Executes a Bloom filter Predicate on each Bloom filter in the collection. The ordering of the Bloom filters is not specified by this interface.- Parameters:
bloomFilterPredicate
- the predicate to evaluate each Bloom filter with.- Returns:
false
when the first filter fails the predicate test. Returnstrue
if all filters pass the test.
-
forEachBloomFilterPair
default boolean forEachBloomFilterPair(BloomFilterProducer other, BiPredicate<BloomFilter, BloomFilter> func) Applies thefunc
to each Bloom filter pair in order. Will apply all of the Bloom filters from the other BloomFilterProducer to this producer. If eitherthis
producer orother
producer has fewer BloomFilters ths method will providenull
for all excess calls to thefunc
.This implementation returns references to the Bloom filter. Other implementations should specify if the array contains deep copies, immutable instances, or references to the filters in the collection.
- Parameters:
other
- The other BloomFilterProducer that provides the y values in the (x,y) pair.func
- The function to apply.- Returns:
true
if thefunc
returnedtrue
for every pair,false
otherwise.
-