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.PerformanceSensitive;
20
21
22
23
24
25 @PerformanceSensitive("allocation")
26 public class ReusableSimpleMessage implements ReusableMessage, CharSequence {
27 private static final long serialVersionUID = -9199974506498249809L;
28 private static Object[] EMPTY_PARAMS = new Object[0];
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 getFormattedMessage();
47 }
48
49 @Override
50 public Object[] getParameters() {
51 return EMPTY_PARAMS;
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 Message memento() {
85 return new SimpleMessage(charSequence);
86 }
87
88
89
90 @Override
91 public int length() {
92 return charSequence == null ? 0 : charSequence.length();
93 }
94
95 @Override
96 public char charAt(final int index) {
97 return charSequence.charAt(index);
98 }
99
100 @Override
101 public CharSequence subSequence(final int start, final int end) {
102 return charSequence.subSequence(start, end);
103 }
104 }
105