private Object toPrimitiveArray()

in src/main/java/org/apache/commons/configuration2/convert/DefaultConversionHandler.java [328:355]


    private Object toPrimitiveArray(final Object src, final Class<?> elemClass, final ConfigurationInterpolator ci) {
        if (src.getClass().isArray()) {
            if (src.getClass().getComponentType().equals(elemClass)) {
                return src;
            }

            if (src.getClass().getComponentType().equals(ClassUtils.primitiveToWrapper(elemClass))) {
                // the value is an array of the wrapper type derived from the
                // specified primitive type
                final int length = Array.getLength(src);
                final Object array = Array.newInstance(elemClass, length);

                for (int i = 0; i < length; i++) {
                    Array.set(array, i, Array.get(src, i));
                }
                return array;
            }
        }

        final Collection<?> values = extractValues(src);
        final Class<?> targetClass = ClassUtils.primitiveToWrapper(elemClass);
        final Object array = Array.newInstance(elemClass, values.size());
        int idx = 0;
        for (final Object value : values) {
            Array.set(array, idx++, convertValue(ci.interpolate(value), targetClass, ci));
        }
        return array;
    }