1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.config;
18
19 import java.util.Objects;
20
21 import org.apache.logging.log4j.Logger;
22 import org.apache.logging.log4j.core.config.plugins.Plugin;
23 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
24 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
25 import org.apache.logging.log4j.core.config.plugins.PluginValue;
26 import org.apache.logging.log4j.status.StatusLogger;
27 import org.apache.logging.log4j.util.Strings;
28
29
30
31
32 @Plugin(name = "property", category = Node.CATEGORY, printObject = true)
33 public final class Property {
34
35
36
37
38 public static final Property[] EMPTY_ARRAY = new Property[0];
39
40 private static final Logger LOGGER = StatusLogger.getLogger();
41
42 private final String name;
43 private final String value;
44 private final boolean valueNeedsLookup;
45
46 private Property(final String name, final String value) {
47 this.name = name;
48 this.value = value;
49 this.valueNeedsLookup = value != null && value.contains("${");
50 }
51
52
53
54
55
56 public String getName() {
57 return name;
58 }
59
60
61
62
63
64 public String getValue() {
65 return Objects.toString(value, Strings.EMPTY);
66 }
67
68
69
70
71
72 public boolean isValueNeedsLookup() {
73 return valueNeedsLookup;
74 }
75
76
77
78
79
80
81
82
83 @PluginFactory
84 public static Property createProperty(
85 @PluginAttribute("name") final String name,
86 @PluginValue("value") final String value) {
87 if (name == null) {
88 LOGGER.error("Property name cannot be null");
89 }
90 return new Property(name, value);
91 }
92
93 @Override
94 public String toString() {
95 return name + '=' + getValue();
96 }
97 }