private Object getArray()

in discovery/local/src/main/java/org/apache/aries/rsa/discovery/endpoint/PropertiesMapper.java [105:140]


    private Object getArray(ArrayType arrayEl, String type) {
        List<ValueType> values = arrayEl.getValue();
        Class<?> cls = null;
        if ("long".equals(type)) {
            cls = long.class;
        } else if ("double".equals(type)) {
            cls = double.class;
        } else if ("float".equals(type)) {
            cls = float.class;
        } else if ("int".equals(type)) {
            cls = int.class;
        } else if ("byte".equals(type)) {
            cls = byte.class;
        } else if ("boolean".equals(type)) {
            cls = boolean.class;
        } else if ("short".equals(type)) {
            cls = short.class;
        }

        try {
            if (cls == null) {
                cls = ClassLoader.getSystemClassLoader().loadClass("java.lang." + type);
            }
            Object array = Array.newInstance(cls, values.size());

            for (int i = 0; i < values.size(); i++) {
                Object val = getValue(values.get(i), type);
                Array.set(array, i, val);
            }

            return array;
        } catch (Exception e) {
            LOG.warn("Could not create array for Endpoint Description", e);
            return null;
        }
    }