org.eclipse.aether.util.graph.version

## Class ChainedVersionFilter

- java.lang.Object
- - org.eclipse.aether.util.graph.version.ChainedVersionFilter

- All Implemented Interfaces:
    VersionFilter

      public final class ChainedVersionFilter
      extends Object
      implements VersionFilter

  A version filter that combines multiple version filters into a chain where each filter gets invoked one after the other, thereby accumulating their filtering effects.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.eclipse.aether.collection.VersionFilter

      `VersionFilter.VersionFilterContext`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `VersionFilter` | `deriveChildFilter(DependencyCollectionContext context)` Derives a version filter for the specified collection context.
    `boolean` | `equals(Object obj)`
    `void` | `filterVersions(VersionFilter.VersionFilterContext context)` Filters the available versions for a given dependency.
    `int` | `hashCode()`
    `static VersionFilter` | `newInstance(Collection<? extends VersionFilter> filters)` Chains the specified version filters.
    `static VersionFilter` | `newInstance(VersionFilter... filters)` Chains the specified version filters.
    `static VersionFilter` | `newInstance(VersionFilter filter1, VersionFilter filter2)` Chains the specified version filters.

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

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

- - ### Method Detail

    - #### newInstance

          public static VersionFilter newInstance(VersionFilter filter1,
                                  VersionFilter filter2)

      Chains the specified version filters.
      Parameters:
        `filter1` - The first version filter, may be `null`.
        `filter2` - The second version filter, may be `null`.
      Returns:
        The chained version filter or `null` if both input filters are `null`.

    - #### newInstance

          public static VersionFilter newInstance(VersionFilter... filters)

      Chains the specified version filters.
      Parameters:
        `filters` - The version filters to chain, must not be `null` or contain `null`.
      Returns:
        The chained version filter or `null` if the input array is empty.

    - #### newInstance

          public static VersionFilter newInstance(Collection<? extends VersionFilter> filters)

      Chains the specified version filters.
      Parameters:
        `filters` - The version filters to chain, must not be `null` or contain `null`.
      Returns:
        The chained version filter or `null` if the input collection is empty.

    - #### filterVersions

          public void filterVersions(VersionFilter.VersionFilterContext context)
                              throws RepositoryException

      Description copied from interface: `VersionFilter`
      Filters the available versions for a given dependency. Implementations will usually call `context.iterator()` to inspect the available versions and use `Iterator.remove()` to delete unacceptable versions. If no versions remain after all filtering has been performed, the dependency collection process will automatically fail, i.e. implementations need not handle this situation on their own.
      Specified by:
        `filterVersions` in interface `VersionFilter`
      Parameters:
        `context` - The version filter context, must not be `null`.
      Throws:
        `RepositoryException` - If the filtering could not be performed.

    - #### deriveChildFilter

          public VersionFilter deriveChildFilter(DependencyCollectionContext context)

      Description copied from interface: `VersionFilter`
      Derives a version filter for the specified collection context. The derived filter will be used to handle version ranges encountered in child dependencies of the current node. When calculating the child filter, implementors are strongly advised to simply return the current instance if nothing changed to help save memory.
      Specified by:
        `deriveChildFilter` in interface `VersionFilter`
      Parameters:
        `context` - The dependency collection context, must not be `null`.
      Returns:
        The version filter for the target node or `null` if versions should not be filtered any more.

    - #### equals

          public boolean equals(Object obj)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

Copyright © 2010-2014 The Eclipse Foundation. All Rights Reserved.