1 package org.apache.maven.artifact.resolver.filter;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.ArrayList;
23 import java.util.Iterator;
24 import java.util.LinkedHashSet;
25 import java.util.List;
26 import java.util.Set;
27
28 import org.apache.maven.artifact.Artifact;
29
30
31
32
33
34
35 public class AndArtifactFilter
36 implements ArtifactFilter
37 {
38 private Set<ArtifactFilter> filters;
39
40 public AndArtifactFilter()
41 {
42 this.filters = new LinkedHashSet<>();
43 }
44
45 public AndArtifactFilter( List<ArtifactFilter> filters )
46 {
47 this.filters = new LinkedHashSet<>( filters );
48 }
49
50 public boolean include( Artifact artifact )
51 {
52 boolean include = true;
53 for ( Iterator<ArtifactFilter> i = filters.iterator(); i.hasNext() && include; )
54 {
55 ArtifactFilter filter = i.next();
56 if ( !filter.include( artifact ) )
57 {
58 include = false;
59 }
60 }
61 return include;
62 }
63
64 public void add( ArtifactFilter artifactFilter )
65 {
66 filters.add( artifactFilter );
67 }
68
69 public List<ArtifactFilter> getFilters()
70 {
71 return new ArrayList<>( filters );
72 }
73
74 @Override
75 public int hashCode()
76 {
77 int hash = 17;
78 hash = hash * 31 + filters.hashCode();
79 return hash;
80 }
81
82 @Override
83 public boolean equals( Object obj )
84 {
85 if ( this == obj )
86 {
87 return true;
88 }
89
90 if ( !( obj instanceof AndArtifactFilter ) )
91 {
92 return false;
93 }
94
95 AndArtifactFilter other = (AndArtifactFilter) obj;
96
97 return filters.equals( other.filters );
98 }
99 }