1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.rat.analysis.matchers;
20
21 import java.util.Objects;
22
23 import org.apache.rat.analysis.IHeaderMatcher;
24 import org.apache.rat.analysis.IHeaders;
25 import org.apache.rat.config.parameters.ComponentType;
26 import org.apache.rat.config.parameters.ConfigComponent;
27
28
29
30
31 @ConfigComponent(type = ComponentType.MATCHER, name = "not", desc = "Negates the enclosed matcher.")
32 public class NotMatcher extends AbstractHeaderMatcher {
33
34 @ConfigComponent(desc = "enclosed Matcher", type = ComponentType.PARAMETER, parameterType = IHeaderMatcher.class, required=true)
35 private final IHeaderMatcher enclosed;
36
37
38
39
40
41
42
43 public NotMatcher(String id, IHeaderMatcher enclosed) {
44 super(id);
45 Objects.requireNonNull(enclosed, "enclosed matcher may not be null");
46 this.enclosed = enclosed;
47 }
48
49 public IHeaderMatcher getEnclosed() {
50 return enclosed;
51 }
52
53 @Override
54 public boolean matches(IHeaders headers) {
55 return !enclosed.matches(headers);
56 }
57
58 @Override
59 public void reset() {
60 enclosed.reset();
61 }
62 }