in repository/service/src/main/java/org/apache/karaf/cave/repository/service/bundlerepository/StaxParser.java [410:429]
private static Object parseAttribute(String value, String type) {
if ("String".equals(type)) {
return value;
} else if ("Version".equals(type)) {
return VersionTable.getVersion(value);
} else if ("Long".equals(type)) {
return Long.parseLong(value.trim());
} else if ("Double".equals(type)) {
return Double.parseDouble(value.trim());
} else if (type.startsWith("List<") && type.endsWith(">")) {
type = type.substring("List<".length(), type.length() - 1);
List<Object> list = new ArrayList<>();
for (String s : value.split(",")) {
list.add(parseAttribute(s.trim(), type));
}
return list;
} else {
throw new IllegalStateException("Unexpected type: '" + type + "'");
}
}