1 package org.openecomp.core.tools.store;
3 import com.amdocs.zusammen.datatypes.Id;
4 import com.amdocs.zusammen.datatypes.SessionContext;
5 import com.amdocs.zusammen.plugin.statestore.cassandra.dao.types.ElementEntityContext;
6 import org.openecomp.core.zusammen.plugin.dao.impl.CassandraElementRepository;
7 import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
9 import java.util.HashMap;
10 import java.util.List;
12 import java.util.Optional;
14 public class VspGeneralLoader {
16 public static final String NAME = "name";
17 public static final String GENERAL = "General";
19 private static CassandraElementRepository cassandraElementRepository =
20 new CassandraElementRepository();
22 public static Map<String, ElementEntity> load(SessionContext context,
23 Map<String, List<String>> vspItemVersionsMap,
24 Map<String, List<String>> vspItemChangeRefssMap) {
25 Map<String, ElementEntity> elementEntityMap = new HashMap<>();
26 System.setProperty("cassandra.dox.keystore", "zusammen_dox");
31 for (Map.Entry<String, List<String>> entry : vspItemVersionsMap.entrySet()) {
33 for (String version : entry.getValue()) {
36 itemId = new Id(entry.getKey());
37 changeRefId = new Id(version);
38 entityId = getEntityIdByInfoNameValue(context, itemId, changeRefId, null, null, NAME,
40 if (entityId != null) {
41 Optional<ElementEntity> result =
42 cassandraElementRepository.get(context, new ElementEntityContext(
43 context.getUser().getUserName(),
46 new ElementEntity(entityId));
47 if (result.isPresent()) {
48 elementEntityMap.put(buildKey(context, entry, version), result.get());
55 for (Map.Entry<String, List<String>> entry : vspItemChangeRefssMap.entrySet()) {
57 for (String changeRef : entry.getValue()) {
60 itemId = new Id(entry.getKey());
62 entityId = getEntityIdByInfoNameValue(context, itemId, null, changeRef,null, NAME,
64 if (entityId != null) {
65 ElementEntityContext elementContext = new ElementEntityContext(
66 context.getUser().getUserName(),
69 elementContext.setChangeRef(changeRef);
70 Optional<ElementEntity> result =
71 cassandraElementRepository.get(context, elementContext,
72 new ElementEntity(entityId));
73 if (result.isPresent()) {
74 elementEntityMap.put(buildKey(context, entry, changeRef), result.get());
81 return elementEntityMap;
84 public static String buildKey(SessionContext context, Map.Entry<String, List<String>> entry, String version) {
85 return String.format("%s_%s_%s", context.getUser().getUserName(), entry.getKey(), version);
88 private static Id getEntityIdByInfoNameValue(SessionContext context,
97 ElementEntityContext elementContext = new ElementEntityContext(
98 context.getUser().getUserName(),
101 if (changeRef != null) {
102 elementContext.setChangeRef(changeRef);
104 Optional<ElementEntity> result =
105 cassandraElementRepository.get(context, elementContext,
106 new ElementEntity(Id.ZERO));
107 if (result.isPresent()) {
108 ElementEntity elementEntity = result.get();
109 return elementEntity.getSubElementIds().stream().filter(subelementId -> {
110 ElementEntityContext subElementContext = new ElementEntityContext(
111 context.getUser().getUserName(),
114 if(changeRef!= null){
115 subElementContext.setChangeRef(changeRef);
117 Optional<ElementEntity> subElementEntity =
118 cassandraElementRepository.get(context, subElementContext,
119 new ElementEntity(subelementId));
120 if (subElementEntity.isPresent()) {
121 if (NAME.equals(name)) {
122 if (value.equals(subElementEntity.get().getInfo().getName())) {
126 if (value.equals(subElementEntity.get().getInfo().getProperty(name))) {
132 }).findFirst().orElse(null);