in discovery/local/src/main/java/org/apache/aries/rsa/discovery/endpoint/PropertiesMapper.java [60:89]
private Object getValue(PropertyType prop) {
Object value = null;
String type = getTypeName(prop);
Object content = getFirstNonText(prop.getContent());
if (content instanceof JAXBElement<?>) {
JAXBElement<?> el = (JAXBElement<?>)content;
if (el.getDeclaredType() == ArrayType.class) {
String elName = el.getName().getLocalPart();
ArrayType inValue = (ArrayType)el.getValue();
if ("array".equals(elName)) {
value = getArray(inValue, type);
} else if ("set".equals(elName)) {
value = handleCollection(inValue, new HashSet<>(), type);
} else if ("list".equals(elName)) {
value = handleCollection(inValue, new ArrayList<>(), type);
}
} else if (el.getDeclaredType() == XmlType.class) {
value = readXML((XmlType)el.getValue(), type);
}
} else {
if (prop.getValue() != null) {
value = instantiate(type, prop.getValue());
} else {
if (prop.getContent().size() > 0) {
value = instantiate(type, prop.getContent().get(0).toString());
}
}
}
return value;
}