1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.util.graph.traverser;
20
21 import org.eclipse.aether.collection.DependencyCollectionContext;
22 import org.eclipse.aether.collection.DependencyTraverser;
23 import org.eclipse.aether.graph.Dependency;
24
25 import static java.util.Objects.requireNonNull;
26
27
28
29
30 public final class StaticDependencyTraverser implements DependencyTraverser {
31
32 private final boolean traverse;
33
34
35
36
37
38
39 public StaticDependencyTraverser(boolean traverse) {
40 this.traverse = traverse;
41 }
42
43 @Override
44 public boolean traverseDependency(Dependency dependency) {
45 requireNonNull(dependency, "dependency cannot be null");
46 return traverse;
47 }
48
49 @Override
50 public DependencyTraverser deriveChildTraverser(DependencyCollectionContext context) {
51 requireNonNull(context, "context cannot be null");
52 return this;
53 }
54
55 @Override
56 public boolean equals(Object obj) {
57 if (this == obj) {
58 return true;
59 } else if (null == obj || !getClass().equals(obj.getClass())) {
60 return false;
61 }
62
63 StaticDependencyTraverser that = (StaticDependencyTraverser) obj;
64 return traverse == that.traverse;
65 }
66
67 @Override
68 public int hashCode() {
69 int hash = getClass().hashCode();
70 hash = hash * 31 + (traverse ? 1 : 0);
71 return hash;
72 }
73 }