1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.grouplens.grapht.reflect;
21
22 import java.lang.annotation.Annotation;
23 import java.util.HashSet;
24 import java.util.Set;
25
26 public class MockQualifierMatcher implements QualifierMatcher {
27 private static final long serialVersionUID = 1L;
28
29 private Set<Annotation> qualifiers;
30
31 private MockQualifierMatcher() {
32 qualifiers = null;
33 }
34
35 public static MockQualifierMatcher any() {
36 return new MockQualifierMatcher();
37 }
38
39 public static MockQualifierMatcher none() {
40 return match((Annotation) null);
41 }
42
43 @Override
44 public int getPriority() {
45 return 0;
46 }
47
48 public static MockQualifierMatcher match(Annotation... qualifiers) {
49 MockQualifierMatcher q = new MockQualifierMatcher();
50 q.qualifiers = new HashSet<Annotation>();
51 for (Annotation m: qualifiers) {
52 q.qualifiers.add(m);
53 }
54 return q;
55 }
56
57 @Override
58 public int compareTo(QualifierMatcher o) {
59 MockQualifierMatcher mq = (MockQualifierMatcher) o;
60
61 if (qualifiers == null) {
62 if (mq.qualifiers == null) {
63 return 0;
64 } else {
65 return 1;
66 }
67 } else {
68 if (mq.qualifiers == null) {
69 return -1;
70 } else {
71 return 0;
72 }
73 }
74 }
75
76 @Override
77 @Deprecated
78 public boolean matches(Annotation q) {
79 return apply(q);
80 }
81
82 @Override
83 public boolean apply(Annotation q) {
84 return qualifiers == null || qualifiers.contains(q);
85 }
86 }