private Object coerce()

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);
    }