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