in data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/AnyStoragePreferenceDeserializer.java [38:77]
public static List<AnyStoragePreference> deserializeList(List<Record> neo4jRecords, List<String> keyPairList) throws Exception {
List<AnyStoragePreference> storagePrefList = new ArrayList<>();
try {
Map<Long, List<AnyStoragePreference>> storagePreferenceMap = new HashMap<>();
for (Record record : neo4jRecords) {
InternalRecord internalRecord = (InternalRecord) record;
Map<String, Object> values = internalRecord.asMap();
keyPairList.forEach(val -> {
String[] keys = val.split(":");
String storageNode = keys[0];
String preferenceNode = keys[1];
InternalNode stVal = (InternalNode) values.get(storageNode);
InternalNode spVal = (InternalNode) values.get(preferenceNode);
if (stVal != null && stVal.hasLabel(StorageConstants.STORAGE_LABEL)) {
AnyStorage storage = null;
try {
storage = AnyStorageDeserializer.deriveStorageFromMap(stVal.asMap());
AnyStoragePreference preference = deriveStoragePrefFromMap(spVal.asMap(), storage);
storagePreferenceMap.computeIfAbsent(spVal.id(), v -> {
return new ArrayList<AnyStoragePreference>();
}).add(preference);
} catch (Exception exception) {
exception.printStackTrace();
}
}
});
}
storagePreferenceMap.forEach((key, value) -> {
storagePrefList.add(value.get(0));
});
return storagePrefList;
} catch (Exception ex) {
String msg = "Error occurred while deserializing Storage Preference : " + ex.getMessage();
throw new Exception(msg, ex);
}
}