diff options
Diffstat (limited to 'openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java')
-rw-r--r-- | openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java | 77 |
1 files changed, 66 insertions, 11 deletions
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java index 54a3dd9ada..b5d09daf3f 100644 --- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java +++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java @@ -5,7 +5,6 @@ import com.amdocs.zusammen.datatypes.SessionContext; import com.amdocs.zusammen.plugin.statestore.cassandra.dao.types.ElementEntityContext; import org.openecomp.core.zusammen.plugin.dao.impl.CassandraElementRepository; import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen.StructureElement; import java.util.HashMap; import java.util.List; @@ -13,28 +12,84 @@ import java.util.Map; import java.util.Optional; public class VspGeneralLoader { + private static CassandraElementRepository cassandraElementRepository = + new CassandraElementRepository(); + public static Map<String, ElementEntity> load(SessionContext context, Map<String, List<String>> vspItemVersionsMap) { Map<String, ElementEntity> elementEntityMap = new HashMap<>(); System.setProperty("cassandra.dox.keystore", "zusammen_dox"); - CassandraElementRepository cassandraElementRepository = new CassandraElementRepository(); + + Id entityId; + Id itemId; + Id versionId; for (Map.Entry<String, List<String>> entry : vspItemVersionsMap.entrySet()) { for (String version : entry.getValue()) { - Optional<ElementEntity> result = - cassandraElementRepository.get(context, new ElementEntityContext( - context.getUser().getUserName(), - new Id(entry.getKey()), - new Id(version)), - new ElementEntity(new Id(StructureElement.General.name()))); - if (result.isPresent()) { - elementEntityMap.put(context.getUser().getUserName() + "_" + entry.getKey() - + "_" + version, result.get()); + + itemId = new Id(entry.getKey()); + versionId = new Id(version); + entityId = getEntityIdByInfoNameValue(context, itemId, versionId, null, "name", + "General"); + if (entityId != null) { + Optional<ElementEntity> result = + cassandraElementRepository.get(context, new ElementEntityContext( + context.getUser().getUserName(), + itemId, + versionId), + new ElementEntity(entityId)); + if (result.isPresent()) { + elementEntityMap.put(context.getUser().getUserName() + "_" + entry.getKey() + + "_" + version, result.get()); + } } } } return elementEntityMap; } + + private static Id getEntityIdByInfoNameValue(SessionContext context, Id itemId, Id versionId, + Id elementId, String + name, String value) { + + Id id; + Optional<ElementEntity> result = + cassandraElementRepository.get(context, new ElementEntityContext( + context.getUser().getUserName(), + itemId, + versionId), + new ElementEntity(Id.ZERO)); + if (result.isPresent()) { + ElementEntity elementEntity = result.get(); + return elementEntity.getSubElementIds().stream().filter(subelementId -> { + Optional<ElementEntity> subElementEntity = + cassandraElementRepository.get(context, new ElementEntityContext( + context.getUser().getUserName(), + itemId, + versionId), + new ElementEntity(subelementId)); + if (subElementEntity.isPresent()) { + if("name".equals(name)){ + if(value.equals(subElementEntity.get().getInfo().getName())){ + return true; + } + } + if (value.equals(subElementEntity.get().getInfo().getProperty(name))) { + return true; + } + } + return false; + + }).findFirst().orElse(null); + } + return null; + + + + + + + } } |