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 private static final Logger LOGGER = StatusLogger.getLogger();
36
37 private final String name;
38 private final String value;
39 private final boolean valueNeedsLookup;
40
41 private Property(final String name, final String value) {
42 this.name = name;
43 this.value = value;
44 this.valueNeedsLookup = value != null && value.contains("${");
45 }
46
47
48
49
50
51 public String getName() {
52 return name;
53 }
54
55
56
57
58
59 public String getValue() {
60 return Objects.toString(value, Strings.EMPTY);
61 }
62
63
64
65
66
67 public boolean isValueNeedsLookup() {
68 return valueNeedsLookup;
69 }
70
71
72
73
74
75
76
77
78 @PluginFactory
79 public static Property createProperty(
80 @PluginAttribute("name") final String name,
81 @PluginValue("value") final String value) {
82 if (name == null) {
83 LOGGER.error("Property name cannot be null");
84 }
85 return new Property(name, value);
86 }
87
88 @Override
89 public String toString() {
90 return name + '=' + getValue();
91 }
92 }