revert convert Object->String, causes NPE problems

This commit is contained in:
Michael Hoennig 2024-11-14 16:38:14 +01:00
parent 880b2aa99a
commit e934726c4b

View File

@ -22,25 +22,25 @@ public class TemplateResolver {
enum PlaceholderPrefix { enum PlaceholderPrefix {
RAW('%') { RAW('%') {
@Override @Override
String convert(final String value, final Resolver resolver) { String convert(final Object value, final Resolver resolver) {
return value != null ? value.toString() : ""; return value != null ? value.toString() : "";
} }
}, },
JSON_QUOTED('$'){ JSON_QUOTED('$'){
@Override @Override
String convert(final String value, final Resolver resolver) { String convert(final Object value, final Resolver resolver) {
return jsonQuoted(value); return jsonQuoted(value);
} }
}, },
URI_ENCODED('&'){ URI_ENCODED('&'){
@Override @Override
String convert(final String value, final Resolver resolver) { String convert(final Object value, final Resolver resolver) {
return value != null ? URLEncoder.encode(value.toString(), StandardCharsets.UTF_8) : ""; return value != null ? URLEncoder.encode(value.toString(), StandardCharsets.UTF_8) : "";
} }
}, },
COMMENT('#'){ COMMENT('#'){
@Override @Override
String convert(final String value, final Resolver resolver) { String convert(final Object value, final Resolver resolver) {
return resolver == DROP_COMMENTS ? "" : value.toString(); return resolver == DROP_COMMENTS ? "" : value.toString();
} }
}; };
@ -59,7 +59,7 @@ public class TemplateResolver {
return Arrays.stream(values()).filter(p -> p.prefixChar == givenChar).findFirst().orElseThrow(); return Arrays.stream(values()).filter(p -> p.prefixChar == givenChar).findFirst().orElseThrow();
} }
abstract String convert(final String value, final Resolver resolver); // FIXME: why Object and not String? abstract String convert(final Object value, final Resolver resolver);
} }
private final static Pattern pattern = Pattern.compile(",(\\s*})", Pattern.MULTILINE); private final static Pattern pattern = Pattern.compile(",(\\s*})", Pattern.MULTILINE);
@ -136,7 +136,7 @@ public class TemplateResolver {
} }
} }
final var content = new TemplateResolver(placeholder.toString(), properties).resolve(resolver); final var content = new TemplateResolver(placeholder.toString(), properties).resolve(resolver);
final var value = intro != '#' ? propVal(content).toString() : content; final var value = intro != '#' ? propVal(content) : content;
resolved.append( resolved.append(
PlaceholderPrefix.ofPrefixChar(intro).convert(value, resolver) PlaceholderPrefix.ofPrefixChar(intro).convert(value, resolver)
); );