private static Object getPropertyValue()

in core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnectorFacadeProxy.java [517:554]


    private static Object getPropertyValue(final String propType, final List<?> values) {
        Object value = null;

        try {
            Class<?> propertySchemaClass = ClassUtils.forName(propType, ClassUtils.getDefaultClassLoader());

            if (GuardedString.class.equals(propertySchemaClass)) {
                value = new GuardedString(values.getFirst().toString().toCharArray());
            } else if (GuardedByteArray.class.equals(propertySchemaClass)) {
                value = new GuardedByteArray((byte[]) values.getFirst());
            } else if (Character.class.equals(propertySchemaClass) || Character.TYPE.equals(propertySchemaClass)) {
                value = values.getFirst() == null || values.getFirst().toString().isEmpty()
                        ? null : values.getFirst().toString().charAt(0);
            } else if (Integer.class.equals(propertySchemaClass) || Integer.TYPE.equals(propertySchemaClass)) {
                value = Integer.valueOf(values.getFirst().toString());
            } else if (Long.class.equals(propertySchemaClass) || Long.TYPE.equals(propertySchemaClass)) {
                value = Long.valueOf(values.getFirst().toString());
            } else if (Float.class.equals(propertySchemaClass) || Float.TYPE.equals(propertySchemaClass)) {
                value = Float.valueOf(values.getFirst().toString());
            } else if (Double.class.equals(propertySchemaClass) || Double.TYPE.equals(propertySchemaClass)) {
                value = Double.valueOf(values.getFirst().toString());
            } else if (Boolean.class.equals(propertySchemaClass) || Boolean.TYPE.equals(propertySchemaClass)) {
                value = Boolean.valueOf(values.getFirst().toString());
            } else if (URI.class.equals(propertySchemaClass)) {
                value = URI.create(values.getFirst().toString());
            } else if (File.class.equals(propertySchemaClass)) {
                value = Path.of(values.getFirst().toString()).toFile();
            } else if (String[].class.equals(propertySchemaClass)) {
                value = values.toArray(String[]::new);
            } else {
                value = values.getFirst() == null ? null : values.getFirst().toString();
            }
        } catch (Exception e) {
            LOG.error("Invalid ConnConfProperty specified: {} {}", propType, values, e);
        }

        return value;
    }