Skip to content

Commit

Permalink
Added a constant for no pattern match
Browse files Browse the repository at this point in the history
  • Loading branch information
normanj-bitquill committed Apr 25, 2024
1 parent 525ac3d commit 153e99f
Showing 1 changed file with 11 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,11 @@ private static class PatternConvertResult {
final boolean matched;
final String formattedString;

protected PatternConvertResult() {
matched = false;
formattedString = null;

Check failure on line 44 in core/src/main/java/org/apache/calcite/util/format/PostgresqlDateTimeFormatter.java

View workflow job for this annotation

GitHub Actions / CheckerFramework (JDK 11)

[Task :core:compileJava] [assignment.type.incompatible] incompatible types in assignment. formattedString = null; ^ found : null (NullType)

Check failure on line 44 in core/src/main/java/org/apache/calcite/util/format/PostgresqlDateTimeFormatter.java

View workflow job for this annotation

GitHub Actions / CheckerFramework (JDK 11), oldest Guava

[Task :core:compileJava] [assignment.type.incompatible] incompatible types in assignment. formattedString = null; ^ found : null (NullType)
}

protected PatternConvertResult(boolean matched, String formattedString) {
this.matched = matched;
this.formattedString = formattedString;
Expand Down Expand Up @@ -90,7 +95,7 @@ protected NumberFormatPattern(Function<ZonedDateTime, String> converter, String.
}

if (patternToUse == null) {
return new PatternConvertResult(false, null);
return NO_PATTERN_MATCH;
}

parsePosition.setIndex(parsePosition.getIndex() + patternToUse.length());
Expand Down Expand Up @@ -217,16 +222,18 @@ protected StringFormatPattern(Function<ZonedDateTime, String> converter, String.
}
}

return new PatternConvertResult(false, null);
return NO_PATTERN_MATCH;
}
}

private static final PatternConvertResult NO_PATTERN_MATCH = new PatternConvertResult();

/**
* The format patterns that are supported. Order is very important, since some patterns
* are prefixes of other patterns.
*/
@SuppressWarnings("TemporalAccessorGetChronoField")
private static FormatPattern[] formatPatterns = new FormatPattern[] {
private static final FormatPattern[] FORMAT_PATTERNS = new FormatPattern[] {
new NumberFormatPattern(
dt -> {
final int hour = dt.get(ChronoField.HOUR_OF_AMPM);
Expand Down Expand Up @@ -597,7 +604,7 @@ public static String toChar(String formatString, ZonedDateTime dateTime) {
while (parsePosition.getIndex() < formatString.length()) {
boolean matched = false;

for (FormatPattern formatPattern : formatPatterns) {
for (FormatPattern formatPattern : FORMAT_PATTERNS) {
final PatternConvertResult patternConvertResult =
formatPattern.convert(parsePosition, formatString, dateTime);
if (patternConvertResult.matched) {
Expand Down

0 comments on commit 153e99f

Please sign in to comment.