in safeguard-impl/src/main/java/org/apache/safeguard/impl/config/ConfigurationMapper.java [131:164]
private Object coerce(final String raw, final Class<?> expected) {
if (expected == long.class || expected == Long.class) {
return Long.valueOf(raw);
}
if (expected == double.class || expected == Double.class) {
return Double.valueOf(raw);
}
if (expected == int.class || expected == Integer.class) {
return Integer.valueOf(raw);
}
if (expected == boolean.class || expected == Boolean.class) {
return Boolean.valueOf(raw);
}
if (expected == ChronoUnit.class) {
return ChronoUnit.valueOf(raw);
}
if (expected == String.class) {
return raw;
}
if (expected == Class[].class) {
return Stream.of(raw.split(","))
.map(String::trim)
.filter(it -> !it.isEmpty())
.map(it -> {
try {
return Thread.currentThread().getContextClassLoader().loadClass(it);
} catch (final ClassNotFoundException e) {
throw new IllegalArgumentException(e);
}
})
.toArray();
}
throw new IllegalArgumentException("Unsupported: " + expected);
}