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