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.datatypes.item.Info;
6 import com.amdocs.zusammen.plugin.statestore.cassandra.dao.types.ElementEntityContext;
7 import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
9 import java.util.HashMap;
10 import java.util.List;
12 import java.util.Objects;
13 import java.util.Optional;
15 public class VspGeneralLoader {
17 public static final String NAME = "name";
18 public static final String GENERAL = "General";
20 private static CassandraElementRepository cassandraElementRepository =
21 new CassandraElementRepository();
23 public static Map<String, ElementEntity> load(SessionContext context,
24 Map<String, List<String>> vspItemVersionsMap,
25 Map<String, List<String>> vspItemChangeRefssMap) {
26 Map<String, ElementEntity> elementEntityMap = new HashMap<>();
27 System.setProperty("cassandra.dox.keystore", "zusammen_dox");
32 for (Map.Entry<String, List<String>> entry : vspItemVersionsMap.entrySet()) {
34 for (String version : entry.getValue()) {
37 itemId = new Id(entry.getKey());
38 changeRefId = new Id(version);
39 entityId = getEntityIdByInfoNameValue(context, itemId, changeRefId, null, null, NAME,
41 if (entityId != null) {
42 Optional<ElementEntity> result =
43 cassandraElementRepository.get(context, new ElementEntityContext(
44 context.getUser().getUserName(),
47 new ElementEntity(entityId));
48 if (result.isPresent()) {
49 elementEntityMap.put(buildKey(context, entry, version), result.get());
56 for (Map.Entry<String, List<String>> entry : vspItemChangeRefssMap.entrySet()) {
58 for (String revisionId : entry.getValue()) {
61 itemId = new Id(entry.getKey());
63 entityId = getEntityIdByInfoNameValue(context, itemId, null, revisionId,null, NAME,
65 if (entityId != null) {
66 ElementEntityContext elementContext = new ElementEntityContext(
67 context.getUser().getUserName(),
70 elementContext.setRevisionId(new Id(revisionId));
71 Optional<ElementEntity> result =
72 cassandraElementRepository.get(context, elementContext,
73 new ElementEntity(entityId));
74 if (result.isPresent()) {
75 elementEntityMap.put(buildKey(context, entry, revisionId), result.get());
82 return elementEntityMap;
85 public static String buildKey(SessionContext context, Map.Entry<String, List<String>> entry, String version) {
86 return String.format("%s_%s_%s", context.getUser().getUserName(), entry.getKey(), version);
89 private static Id getEntityIdByInfoNameValue(SessionContext context,
98 ElementEntityContext elementContext = new ElementEntityContext(
99 context.getUser().getUserName(),
102 if (revisionId != null) {
103 elementContext.setRevisionId(new Id(revisionId));
105 Optional<ElementEntity> result =
106 cassandraElementRepository.get(context, elementContext,
107 new ElementEntity(Id.ZERO));
108 if (result.isPresent()) {
109 ElementEntity elementEntity = result.get();
110 return elementEntity.getSubElementIds().stream().filter(subelementId -> {
111 ElementEntityContext subElementContext = new ElementEntityContext(
112 context.getUser().getUserName(),
115 if(revisionId!= null){
116 subElementContext.setRevisionId(new Id(revisionId));
118 Optional<ElementEntity> subElementEntityOptional =
119 cassandraElementRepository.get(context, subElementContext,
120 new ElementEntity(subelementId));
121 if (subElementEntityOptional.isPresent()) {
122 Info info = subElementEntityOptional.get().getInfo();
123 if (isValid(name, info)) {
126 if (NAME.equals(name)) {
127 if (value.equals(info.getName())) {
131 if (value.equals(info.getProperty(name))) {
137 }).findFirst().orElse(null);
144 private static boolean isValid(String name, Info info) {
145 return Objects.isNull(info)|| Objects.isNull(info.getProperty(name));