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
35
36 @ConfigComponent(desc = "enclosed Matcher", type = ComponentType.PARAMETER, parameterType = IHeaderMatcher.class, required = true)
37 private final IHeaderMatcher enclosed;
38
39
40
41
42
43
44
45 public NotMatcher(final String id, final IHeaderMatcher enclosed) {
46 super(id);
47 Objects.requireNonNull(enclosed, "enclosed matcher may not be null");
48 this.enclosed = enclosed;
49 }
50
51 public IHeaderMatcher getEnclosed() {
52 return enclosed;
53 }
54
55 @Override
56 public boolean matches(final IHeaders headers) {
57 return !enclosed.matches(headers);
58 }
59
60 @Override
61 public void reset() {
62 enclosed.reset();
63 }
64 }