nest.repository.support Documentation TaskDoc JavaDoc Packages
public interface DependencyFilter
Interface for filtering the dependencies.

A dependency filter is used to limit or extend the dependencies for a given operation. They are most of the time used by the dependency resolution task to select the dependencies that should be part of the resolution.

The interface defines a stateless strategy that shouldn't depend on external information, only on the one that is passed to the filterBundleDependency(BundleKey, BundleDependencyInformation) function.

This interface is also an external extension point for the dependency resolution task.

Clients should implement this interface. When doing so, make sure to adhere to the contract specified by hashCode() and equals(Object). Implementations are also recommended to implement the Externalizable interface.

Common dependency filters can be retrieved using the static factory methods in this interface.

Methods
public static DependencyFilter
chain(Collection<extends DependencyFilter> filters)
Creates a chain dependency filter.
public boolean
Checks if this filter equals to the argument.
public BundleDependencyInformation
Filters the dependency information.
public int
Returns a hash code value for the object.
public static DependencyFilter
Gets the identity dependency filter.
public static DependencyFilter
Gets the none dependency filter.
public static DependencyFilter chain(Collection<extends DependencyFilter> filters) throws NullPointerException
Creates a chain dependency filter.

A chain dependency filter will call all filters in succession with the output of the previous filter as the input to the next. If any of the filters return null, the invocation chain will break, and null is returned.

filtersThe dependency filters.
The filter.
NullPointerExceptionIf the argument or any of the filters are null.
public abstract boolean equals(Object obj)
Checks if this filter equals to the argument.

Two dependency filters equal if they produce the same results for the same inputs given the same circumstances.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any non-null reference values x and y, this method returns true if and only if x and y refer to the same object (x == y has the value true).

Note that it is generally necessary to override the hashCode method whenever this method is overridden, so as to maintain the general contract for the hashCode method, which states that equal objects must have equal hash codes.

true if this object is the same as the obj argument; false otherwise.
Filters the dependency information.

The method implementation should examine the input dependency information and may perform arbitrary operations to transform the dependencies.

If the owner argument is null, then the dependency information is the root dependencies that were passed as a direct input from the user.

ownerThe owner of the dependency information. If null, then this is the root dependency information for the operation.
depinfoThe dependency information to transform or filter.
The filtered dependency information, or null to omit all dependencies. May also be empty.
public abstract int hashCode()
Overridden from: Object
Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the Object.equals(Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.

As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the Java™ programming language.)

a hash code value for this object.
public static DependencyFilter identity()
Gets the identity dependency filter.

The identity dependency filter returns the input dependency information without modification.

The filter.
public static DependencyFilter none()
Gets the none dependency filter.

The none dependency filter will omit all dependencies. It always returns BundleDependencyInformation.EMPTY.

The filter.