public static List deserializeList()

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