1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.logging.log4j.core.layout;
19
20 import java.io.ObjectStreamException;
21 import java.io.Serializable;
22
23 import org.apache.logging.log4j.core.config.Node;
24 import org.apache.logging.log4j.core.config.plugins.Plugin;
25 import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute;
26 import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
27
28
29
30
31
32
33 @Plugin(name = "PatternMatch", category = Node.CATEGORY, printObject = true)
34 public final class PatternMatch {
35
36 private final String key;
37 private final String pattern;
38
39
40
41
42
43
44 public PatternMatch(final String key, final String pattern) {
45 this.key = key;
46 this.pattern = pattern;
47 }
48
49
50
51
52
53 public String getKey() {
54 return key;
55 }
56
57
58
59
60
61 public String getPattern() {
62 return pattern;
63 }
64
65 @Override
66 public String toString() {
67 return key + '=' + pattern;
68 }
69
70 @PluginBuilderFactory
71 public static Builder newBuilder() {
72 return new Builder();
73 }
74
75 public static class Builder implements org.apache.logging.log4j.core.util.Builder<PatternMatch>, Serializable {
76
77 private static final long serialVersionUID = 1L;
78
79 @PluginBuilderAttribute
80 private String key;
81
82 @PluginBuilderAttribute
83 private String pattern;
84
85 public Builder setKey(final String key) {
86 this.key = key;
87 return this;
88 }
89
90 public Builder setPattern(final String pattern) {
91 this.pattern = pattern;
92 return this;
93 }
94
95 @Override
96 public PatternMatch build() {
97 return new PatternMatch(key, pattern);
98 }
99
100 protected Object readResolve() throws ObjectStreamException {
101 return new PatternMatch(key, pattern);
102 }
103 }
104
105 @Override
106 public int hashCode() {
107 final int prime = 31;
108 int result = 1;
109 result = prime * result + ((key == null) ? 0 : key.hashCode());
110 result = prime * result + ((pattern == null) ? 0 : pattern.hashCode());
111 return result;
112 }
113
114 @Override
115 public boolean equals(final Object obj) {
116 if (this == obj) {
117 return true;
118 }
119 if (obj == null) {
120 return false;
121 }
122 if (getClass() != obj.getClass()) {
123 return false;
124 }
125 final PatternMatch other = (PatternMatch) obj;
126 if (key == null) {
127 if (other.key != null) {
128 return false;
129 }
130 } else if (!key.equals(other.key)) {
131 return false;
132 }
133 if (pattern == null) {
134 if (other.pattern != null) {
135 return false;
136 }
137 } else if (!pattern.equals(other.pattern)) {
138 return false;
139 }
140 return true;
141 }
142 }