# Class LayerManager.ExtendCheck

java.lang.Object
org.apache.commons.collections4.bloomfilter.LayerManager.ExtendCheck

Enclosing class:
  `LayerManager<T extends BloomFilter<T>>`

public static final class LayerManager.ExtendCheck extends Object
A collection of common ExtendCheck implementations to test whether to extend the depth of a LayerManager.

Since:
  4.5.0-M1

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static <T extends BloomFilter<T>>
  Predicate<LayerManager<T>>`
  `advanceOnCount(int breakAt)`
  Creates a new target after a specific number of filters have been added to the current target.
  `static <T extends BloomFilter<T>>
  Predicate<LayerManager<T>>`
  `advanceOnPopulated()`
  Advances the target once a merge has been performed.
  `static <T extends BloomFilter<T>>
  Predicate<LayerManager<T>>`
  `advanceOnSaturation(double maxN)`
  Creates a new target after the current target is saturated.
  `static <T extends BloomFilter<T>>
  Predicate<LayerManager<T>>`
  `neverAdvance()`
  Does not automatically advance the target.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### advanceOnCount

    public static <T extends BloomFilter<T>> Predicate<LayerManager<T>> advanceOnCount(int breakAt)
    Creates a new target after a specific number of filters have been added to the current target.
    Type Parameters:
      `T` - Type of BloomFilter.
    Parameters:
      `breakAt` - the number of filters to merge into each filter in the list.
    Returns:
      A Predicate suitable for the LayerManager `extendCheck` parameter.
    Throws:
      `IllegalArgumentException` - if `breakAt <= 0`

  - ### advanceOnPopulated

    public static <T extends BloomFilter<T>> Predicate<LayerManager<T>> advanceOnPopulated()
    Advances the target once a merge has been performed.
    Type Parameters:
      `T` - Type of BloomFilter.
    Returns:
      A Predicate suitable for the LayerManager `extendCheck` parameter.

  - ### advanceOnSaturation

    public static <T extends BloomFilter<T>> Predicate<LayerManager<T>> advanceOnSaturation(double maxN)
    Creates a new target after the current target is saturated. Saturation is defined as the `Bloom filter estimated N >= maxN`.

    An example usage is advancing on a calculated saturation by calling: `ExtendCheck.advanceOnSaturation(shape.estimateMaxN())`

    Type Parameters:
      `T` - Type of BloomFilter.
    Parameters:
      `maxN` - the maximum number of estimated items in the filter.
    Returns:
      A Predicate suitable for the LayerManager `extendCheck` parameter.
    Throws:
      `IllegalArgumentException` - if `maxN <= 0`

  - ### neverAdvance

    public static <T extends BloomFilter<T>> Predicate<LayerManager<T>> neverAdvance()
    Does not automatically advance the target. @{code next()} must be called directly to perform the advance.
    Type Parameters:
      `T` - Type of BloomFilter.
    Returns:
      A Predicate suitable for the LayerManager `extendCheck` parameter.