Class AndDependencyTraverser

  • All Implemented Interfaces:
    DependencyTraverser

    public final class AndDependencyTraverser
    extends Object
    implements DependencyTraverser
    A dependency traverser that combines zero or more other traversers using a logical AND. The resulting traverser enables processing of child dependencies if and only if all constituent traversers request traversal.
    • Method Detail

      • newInstance

        public static DependencyTraverser newInstance​(DependencyTraverser traverser1,
                                                      DependencyTraverser traverser2)
        Creates a new traverser from the specified traversers.
        Parameters:
        traverser1 - The first traverser to combine, may be null.
        traverser2 - The second traverser to combine, may be null.
        Returns:
        The combined traverser or null if both traversers were null.
      • traverseDependency

        public boolean traverseDependency​(Dependency dependency)
        Description copied from interface: DependencyTraverser
        Decides whether the dependencies of the specified dependency should be traversed.
        Specified by:
        traverseDependency in interface DependencyTraverser
        Parameters:
        dependency - The dependency to check, must not be null.
        Returns:
        true if the dependency graph builder should recurse into the specified dependency and process its dependencies, false otherwise.
      • deriveChildTraverser

        public DependencyTraverser deriveChildTraverser​(DependencyCollectionContext context)
        Description copied from interface: DependencyTraverser
        Derives a dependency traverser that will be used to decide whether the transitive dependencies of the dependency given in the collection context shall be traversed. When calculating the child traverser, implementors are strongly advised to simply return the current instance if nothing changed to help save memory.
        Specified by:
        deriveChildTraverser in interface DependencyTraverser
        Parameters:
        context - The dependency collection context, must not be null.
        Returns:
        The dependency traverser for the target node or null if dependencies should be unconditionally traversed in the sub graph.