Skip to content

Commit ff4f688

Browse files
committed
Remove redundant DatePatternConverter.Formatter
1 parent 2f74ffc commit ff4f688

File tree

1 file changed

+14
-55
lines changed

1 file changed

+14
-55
lines changed

log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/DatePatternConverter.java

Lines changed: 14 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -51,67 +51,23 @@ public final class DatePatternConverter extends LogEventPatternConverter impleme
5151

5252
private static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss,SSS";
5353

54-
private abstract static class Formatter<F extends InstantFormatter> {
55-
56-
final F delegate;
57-
58-
private Formatter(final F delegate) {
59-
this.delegate = delegate;
60-
}
61-
62-
@Nullable
63-
public String toPattern() {
64-
return null;
65-
}
66-
67-
public TimeZone getTimeZone() {
68-
return TimeZone.getDefault();
69-
}
70-
}
71-
72-
private static final class PatternFormatter extends Formatter<InstantPatternFormatter> {
73-
74-
private PatternFormatter(final InstantPatternFormatter delegate) {
75-
super(delegate);
76-
}
77-
78-
@Override
79-
public String toPattern() {
80-
return delegate.getPattern();
81-
}
82-
83-
@Override
84-
public TimeZone getTimeZone() {
85-
return delegate.getTimeZone();
86-
}
87-
}
88-
89-
private static final class NumberFormatter extends Formatter<InstantNumberFormatter> {
90-
91-
private NumberFormatter(final InstantNumberFormatter delegate) {
92-
super(delegate);
93-
}
94-
}
95-
96-
private final Formatter<?> formatter;
54+
private final InstantFormatter formatter;
9755

9856
private DatePatternConverter(@Nullable final String[] options) {
9957
super("Date", "date");
10058
this.formatter = createFormatter(options);
10159
}
10260

103-
private static Formatter<?> createFormatter(@Nullable final String[] options) {
61+
private static InstantFormatter createFormatter(@Nullable final String[] options) {
10462
try {
10563
return createFormatterUnsafely(options);
10664
} catch (final Exception error) {
10765
logOptionReadFailure(options, error, "failed for options: {}, falling back to the default instance");
10866
}
109-
final InstantPatternFormatter delegateFormatter =
110-
InstantPatternFormatter.newBuilder().setPattern(DEFAULT_PATTERN).build();
111-
return new PatternFormatter(delegateFormatter);
67+
return InstantPatternFormatter.newBuilder().setPattern(DEFAULT_PATTERN).build();
11268
}
11369

114-
private static Formatter<?> createFormatterUnsafely(@Nullable final String[] options) {
70+
private static InstantFormatter createFormatterUnsafely(@Nullable final String[] options) {
11571

11672
// Read options
11773
final String pattern = readPattern(options);
@@ -120,20 +76,19 @@ private static Formatter<?> createFormatterUnsafely(@Nullable final String[] opt
12076

12177
// Is it epoch seconds?
12278
if ("UNIX".equals(pattern)) {
123-
return new NumberFormatter(InstantNumberFormatter.EPOCH_SECONDS_ROUNDED);
79+
return InstantNumberFormatter.EPOCH_SECONDS_ROUNDED;
12480
}
12581

12682
// Is it epoch milliseconds?
12783
if ("UNIX_MILLIS".equals(pattern)) {
128-
return new NumberFormatter(InstantNumberFormatter.EPOCH_MILLIS_ROUNDED);
84+
return InstantNumberFormatter.EPOCH_MILLIS_ROUNDED;
12985
}
13086

131-
final InstantPatternFormatter delegateFormatter = InstantPatternFormatter.newBuilder()
87+
return InstantPatternFormatter.newBuilder()
13288
.setPattern(pattern)
13389
.setTimeZone(timeZone)
13490
.setLocale(locale)
13591
.build();
136-
return new PatternFormatter(delegateFormatter);
13792
}
13893

13994
private static String readPattern(@Nullable final String[] options) {
@@ -320,7 +275,7 @@ public void format(final long epochMillis, final StringBuilder buffer) {
320275
*/
321276
@Deprecated
322277
public void format(final Instant instant, final StringBuilder buffer) {
323-
formatter.delegate.formatTo(buffer, instant);
278+
formatter.formatTo(buffer, instant);
324279
}
325280

326281
@Override
@@ -361,13 +316,17 @@ public void format(final StringBuilder buffer, @Nullable final Object... objects
361316
* @return the pattern string describing this date format or {@code null} if the format does not have a pattern.
362317
*/
363318
public String getPattern() {
364-
return formatter.toPattern();
319+
return (formatter instanceof InstantPatternFormatter)
320+
? ((InstantPatternFormatter) formatter).getPattern()
321+
: null;
365322
}
366323

367324
/**
368325
* @return the time zone used by this date format
369326
*/
370327
public TimeZone getTimeZone() {
371-
return formatter.getTimeZone();
328+
return (formatter instanceof InstantPatternFormatter)
329+
? ((InstantPatternFormatter) formatter).getTimeZone()
330+
: null;
372331
}
373332
}

0 commit comments

Comments
 (0)