1 package org.apache.maven.shared.dependency.tree.filter;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.shared.dependency.tree.DependencyNode;
23
24 /**
25 * A dependency node filter that accepts nodes depending on their state.
26 *
27 * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
28 * @version $Id: StateDependencyNodeFilter.java 661727 2008-05-30 14:21:49Z bentmann $
29 * @since 1.1
30 */
31 public class StateDependencyNodeFilter implements DependencyNodeFilter
32 {
33
34
35 /**
36 * A dependency node filter that only accepts included nodes.
37 */
38 public static final StateDependencyNodeFilter INCLUDED = new StateDependencyNodeFilter( DependencyNode.INCLUDED );
39
40
41
42 /**
43 * The state of dependency nodes to accept.
44 *
45 * @see DependencyNode
46 */
47 private final int state;
48
49
50
51 /**
52 * Creates a dependency node filter that only accepts dependency nodes of the specified state.
53 *
54 * @param state
55 * the state of dependency nodes to accept
56 * @throws IllegalArgumentException
57 * if the specified state is invalid
58 */
59 public StateDependencyNodeFilter( int state )
60 {
61 if ( state < DependencyNode.INCLUDED || state > DependencyNode.OMITTED_FOR_CYCLE )
62 {
63 throw new IllegalArgumentException( "Unknown state: " + state );
64 }
65
66 this.state = state;
67 }
68
69
70
71 /**
72 * {@inheritDoc}
73 */
74 public boolean accept( DependencyNode node )
75 {
76 return node.getState() == state;
77 }
78
79
80
81 /**
82 * Gets the dependency node state that this filter accepts.
83 *
84 * @return the dependency node state that this filter accepts
85 */
86 public int getState()
87 {
88 return state;
89 }
90 }