1 package org.apache.maven.shared.artifact.filter.collection;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.HashSet;
23 import java.util.Iterator;
24 import java.util.Set;
25
26 import org.apache.maven.artifact.Artifact;
27
28
29
30
31
32 public class ProjectTransitivityFilter
33 extends AbstractArtifactsFilter
34 {
35
36 private boolean excludeTransitive;
37
38 private Set directDependencies;
39
40 public ProjectTransitivityFilter( Set directDependencies, boolean excludeTransitive )
41 {
42 this.excludeTransitive = excludeTransitive;
43 this.directDependencies = directDependencies;
44 }
45
46 public Set filter( Set artifacts )
47 {
48
49
50
51 Set result = artifacts;
52
53 if ( excludeTransitive )
54 {
55 result = new HashSet();
56 Iterator iterator = artifacts.iterator();
57 while ( iterator.hasNext() )
58 {
59 Artifact artifact = (Artifact) iterator.next();
60 if ( artifactIsADirectDependency( artifact ) )
61 {
62 result.add( artifact );
63 }
64 }
65 }
66 return result;
67 }
68
69
70
71
72
73
74
75 public boolean artifactIsADirectDependency( Artifact artifact )
76 {
77 boolean result = false;
78 Iterator iterator = this.directDependencies.iterator();
79 while ( iterator.hasNext() )
80 {
81 Artifact dependency = (Artifact) iterator.next();
82 if ( dependency.equals( artifact ) )
83 {
84 result = true;
85 break;
86 }
87 }
88 return result;
89 }
90
91
92
93
94 public boolean isExcludeTransitive()
95 {
96 return this.excludeTransitive;
97 }
98
99
100
101
102 public void setExcludeTransitive( boolean excludeTransitive )
103 {
104 this.excludeTransitive = excludeTransitive;
105 }
106 }