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.Arrays;
22 import java.util.LinkedHashSet;
23 import java.util.Set;
24
25 import org.apache.maven.artifact.Artifact;
26
27
28
29
30 public class ExclusionSetFilter implements ArtifactFilter {
31 private Set<String> excludes;
32
33 public ExclusionSetFilter(String[] excludes) {
34 this.excludes = new LinkedHashSet<>(Arrays.asList(excludes));
35 }
36
37 public ExclusionSetFilter(Set<String> excludes) {
38 this.excludes = excludes;
39 }
40
41 public boolean include(Artifact artifact) {
42 String id = artifact.getArtifactId();
43
44 if (excludes.contains(id)) {
45 return false;
46 }
47
48 id = artifact.getGroupId() + ':' + id;
49
50 return !excludes.contains(id);
51 }
52
53 @Override
54 public int hashCode() {
55 int hash = 17;
56 hash = hash * 31 + excludes.hashCode();
57 return hash;
58 }
59
60 @Override
61 public boolean equals(Object obj) {
62 if (this == obj) {
63 return true;
64 }
65
66 if (!(obj instanceof ExclusionSetFilter)) {
67 return false;
68 }
69
70 ExclusionSetFilter other = (ExclusionSetFilter) obj;
71
72 return excludes.equals(other.excludes);
73 }
74 }