1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.appender.rolling.action;
18
19 import java.nio.file.Path;
20 import java.nio.file.attribute.BasicFileAttributes;
21 import java.util.Objects;
22
23 import org.apache.logging.log4j.core.Core;
24 import org.apache.logging.log4j.core.config.plugins.Plugin;
25 import org.apache.logging.log4j.core.config.plugins.PluginElement;
26 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
27
28
29
30
31 @Plugin(name = "IfNot", category = Core.CATEGORY_NAME, printObject = true)
32 public final class IfNot implements PathCondition {
33
34 private final PathCondition negate;
35
36 private IfNot(final PathCondition negate) {
37 this.negate = Objects.requireNonNull(negate, "filter");
38 }
39
40 public PathCondition getWrappedFilter() {
41 return negate;
42 }
43
44
45
46
47
48 @Override
49 public boolean accept(final Path baseDir, final Path relativePath, final BasicFileAttributes attrs) {
50 return !negate.accept(baseDir, relativePath, attrs);
51 }
52
53
54
55
56
57 @Override
58 public void beforeFileTreeWalk() {
59 negate.beforeFileTreeWalk();
60 }
61
62
63
64
65
66
67
68 @PluginFactory
69 public static IfNot createNotCondition(
70 @PluginElement("PathConditions") final PathCondition condition) {
71 return new IfNot(condition);
72 }
73
74 @Override
75 public String toString() {
76 return "IfNot(" + negate + ")";
77 }
78 }