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