View Javadoc
1   /*******************************************************************************
2    * Copyright (c) 2010, 2011 Sonatype, Inc.
3    * All rights reserved. This program and the accompanying materials
4    * are made available under the terms of the Eclipse Public License v1.0
5    * which accompanies this distribution, and is available at
6    * http://www.eclipse.org/legal/epl-v10.html
7    *
8    * Contributors:
9    *    Sonatype, Inc. - initial API and implementation
10   *******************************************************************************/
11  package org.eclipse.aether.graph;
12  
13  import java.util.List;
14  
15  /**
16   * A filter to include/exclude dependency nodes during other operations.
17   */
18  public interface DependencyFilter
19  {
20  
21      /**
22       * Indicates whether the specified dependency node shall be included or excluded.
23       * 
24       * @param node The dependency node to filter, must not be {@code null}.
25       * @param parents The (read-only) chain of parent nodes that leads to the node to be filtered, must not be
26       *            {@code null}. Iterating this (possibly empty) list walks up the dependency graph towards the root
27       *            node, i.e. the immediate parent node (if any) is the first node in the list. The size of the list also
28       *            denotes the zero-based depth of the filtered node.
29       * @return {@code true} to include the dependency node, {@code false} to exclude it.
30       */
31      boolean accept( DependencyNode node, List<DependencyNode> parents );
32  
33  }