public static Object from()

in integrations/rest-management/rest-management/src/main/java/org/apache/aries/jax/rs/rest/management/internal/coerce/Coerce.java [140:227]


    public static Object from(
        String type, boolean array, List<String> valueParts) {

        Objects.requireNonNull(type);

        if (array) {
            if (type.equals("Long")) {
                return valueParts.stream().map(Long::parseLong).mapToLong(
                    Long::longValue).toArray();
            }
            else if (type.equals("Double")) {
                return valueParts.stream().map(Double::parseDouble).mapToDouble(
                    Double::doubleValue).toArray();
            }
            else if (type.equals("Float")) {
                float[] floats = new float[valueParts.size()];
                for (int i = 0; i < valueParts.size(); i++) {
                    floats[i] = Float.parseFloat(valueParts.get(i));
                }
                return floats;
            }
            else if (type.equals("Integer")) {
                return valueParts.stream().map(Integer::parseInt).mapToInt(
                    Integer::intValue).toArray();
            }
            else if (type.equals("Byte")) {
                byte[] bytes = new byte[valueParts.size()];
                for (int i = 0; i < valueParts.size(); i++) {
                    bytes[i] = Byte.parseByte(valueParts.get(i));
                }
                return bytes;
            }
            else if (type.equals("Character")) {
                return valueParts.stream().map(Integer::parseInt).mapToInt(
                    Integer::intValue).toArray();
            }
            else if (type.equals("Boolean")) {
                boolean[] booleans = new boolean[valueParts.size()];
                for (int i = 0; i < valueParts.size(); i++) {
                    booleans[i] = Boolean.parseBoolean(valueParts.get(i));
                }
                return booleans;
            }
            else if (type.equals("Short")) {
                short[] shorts = new short[valueParts.size()];
                for (int i = 0; i < valueParts.size(); i++) {
                    shorts[i] = Short.parseShort(valueParts.get(i));
                }
                return shorts;
            }
            else {
                return valueParts.stream().toArray(String[]::new);
            }
        }
        else {
            if (valueParts.isEmpty()) {
                return null;
            }

            if (type.equals("Long")) {
                return Long.parseLong(valueParts.get(0));
            }
            else if (type.equals("Double")) {
                return Double.parseDouble(valueParts.get(0));
            }
            else if (type.equals("Float")) {
                return Float.parseFloat(valueParts.get(0));
            }
            else if (type.equals("Integer")) {
                return Integer.parseInt(valueParts.get(0));
            }
            else if (type.equals("Byte")) {
                return Byte.parseByte(valueParts.get(0));
            }
            else if (type.equals("Character")) {
                return Integer.parseInt(valueParts.get(0));
            }
            else if (type.equals("Boolean")) {
                return Boolean.parseBoolean(valueParts.get(0));
            }
            else if (type.equals("Short")) {
                return Short.parseShort(valueParts.get(0));
            }
            else {
                return valueParts.get(0);
            }
        }
    }