1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.message;
18
19 import org.apache.logging.log4j.util.Constants;
20 import org.apache.logging.log4j.util.PerformanceSensitive;
21
22
23
24
25
26 @PerformanceSensitive("allocation")
27 public class ReusableSimpleMessage implements ReusableMessage, CharSequence, ParameterVisitable, Clearable {
28 private static final long serialVersionUID = -9199974506498249809L;
29 private CharSequence charSequence;
30
31 public void set(final String message) {
32 this.charSequence = message;
33 }
34
35 public void set(final CharSequence charSequence) {
36 this.charSequence = charSequence;
37 }
38
39 @Override
40 public String getFormattedMessage() {
41 return String.valueOf(charSequence);
42 }
43
44 @Override
45 public String getFormat() {
46 return charSequence instanceof String ? (String) charSequence : null;
47 }
48
49 @Override
50 public Object[] getParameters() {
51 return Constants.EMPTY_OBJECT_ARRAY;
52 }
53
54 @Override
55 public Throwable getThrowable() {
56 return null;
57 }
58
59 @Override
60 public void formatTo(final StringBuilder buffer) {
61 buffer.append(charSequence);
62 }
63
64
65
66
67
68
69 @Override
70 public Object[] swapParameters(final Object[] emptyReplacement) {
71 return emptyReplacement;
72 }
73
74
75
76
77
78 @Override
79 public short getParameterCount() {
80 return 0;
81 }
82
83 @Override
84 public <S> void forEachParameter(final ParameterConsumer<S> action, final S state) {
85 }
86
87 @Override
88 public Message memento() {
89 return new SimpleMessage(charSequence);
90 }
91
92
93
94 @Override
95 public int length() {
96 return charSequence == null ? 0 : charSequence.length();
97 }
98
99 @Override
100 public char charAt(final int index) {
101 return charSequence.charAt(index);
102 }
103
104 @Override
105 public CharSequence subSequence(final int start, final int end) {
106 return charSequence.subSequence(start, end);
107 }
108
109 @Override
110 public void clear() {
111 charSequence = null;
112 }
113 }
114