Reset all version failure
[sdc.git] / openecomp-be / tools / zusammen-tools / src / main / java / org / openecomp / core / tools / store / VspGeneralLoader.java
index b5d09da..fbfde74 100644 (file)
@@ -12,67 +12,114 @@ import java.util.Map;
 import java.util.Optional;
 
 public class VspGeneralLoader {
+
+  public static final String NAME = "name";
+  public static final String GENERAL = "General";
+
   private static CassandraElementRepository cassandraElementRepository =
-      new CassandraElementRepository();
+          new CassandraElementRepository();
 
   public static Map<String, ElementEntity> load(SessionContext context,
-                                                Map<String, List<String>> vspItemVersionsMap) {
+                                                Map<String, List<String>> vspItemVersionsMap,
+                                                Map<String, List<String>> vspItemChangeRefssMap) {
     Map<String, ElementEntity> elementEntityMap = new HashMap<>();
     System.setProperty("cassandra.dox.keystore", "zusammen_dox");
 
     Id entityId;
     Id itemId;
-    Id versionId;
+    Id changeRefId;
     for (Map.Entry<String, List<String>> entry : vspItemVersionsMap.entrySet()) {
 
       for (String version : entry.getValue()) {
 
 
         itemId = new Id(entry.getKey());
-        versionId = new Id(version);
-        entityId = getEntityIdByInfoNameValue(context, itemId, versionId, null, "name",
-            "General");
+        changeRefId = new Id(version);
+        entityId = getEntityIdByInfoNameValue(context, itemId, changeRefId, null, null, NAME,
+                GENERAL);
+        if (entityId != null) {
+          Optional<ElementEntity> result =
+                  cassandraElementRepository.get(context, new ElementEntityContext(
+                                  context.getUser().getUserName(),
+                                  itemId,
+                                  changeRefId),
+                          new ElementEntity(entityId));
+          if (result.isPresent()) {
+            elementEntityMap.put(buildKey(context, entry, version), result.get());
+          }
+        }
+      }
+    }
+
+
+    for (Map.Entry<String, List<String>> entry : vspItemChangeRefssMap.entrySet()) {
+
+      for (String changeRef : entry.getValue()) {
+
+
+        itemId = new Id(entry.getKey());
+
+        entityId = getEntityIdByInfoNameValue(context, itemId, null, changeRef,null, NAME,
+                GENERAL);
         if (entityId != null) {
+          ElementEntityContext elementContext = new ElementEntityContext(
+                  context.getUser().getUserName(),
+                  itemId,
+                  null);
+          elementContext.setChangeRef(changeRef);
           Optional<ElementEntity> result =
-              cassandraElementRepository.get(context, new ElementEntityContext(
-                      context.getUser().getUserName(),
-                      itemId,
-                      versionId),
-                  new ElementEntity(entityId));
+                  cassandraElementRepository.get(context, elementContext,
+                          new ElementEntity(entityId));
           if (result.isPresent()) {
-            elementEntityMap.put(context.getUser().getUserName() + "_" + entry.getKey()
-                + "_" + version, result.get());
+            elementEntityMap.put(buildKey(context, entry, changeRef), result.get());
           }
         }
       }
     }
 
+
     return elementEntityMap;
   }
 
-  private static Id getEntityIdByInfoNameValue(SessionContext context, Id itemId, Id versionId,
-                                               Id elementId, String
-                                                       name, String value) {
+  public static String buildKey(SessionContext context, Map.Entry<String, List<String>> entry, String version) {
+    return String.format("%s_%s_%s", context.getUser().getUserName(), entry.getKey(), version);
+  }
 
-    Id id;
+  private static Id getEntityIdByInfoNameValue(SessionContext context,
+                                               Id itemId,
+                                               Id versionId,
+                                               String changeRef,
+                                               Id elementId,
+                                               String name,
+                                               String value) {
+
+
+    ElementEntityContext elementContext = new ElementEntityContext(
+            context.getUser().getUserName(),
+            itemId,
+            versionId);
+    if (changeRef != null) {
+      elementContext.setChangeRef(changeRef);
+    }
     Optional<ElementEntity> result =
-        cassandraElementRepository.get(context, new ElementEntityContext(
-                context.getUser().getUserName(),
-                itemId,
-                versionId),
-            new ElementEntity(Id.ZERO));
+            cassandraElementRepository.get(context, elementContext,
+                    new ElementEntity(Id.ZERO));
     if (result.isPresent()) {
       ElementEntity elementEntity = result.get();
       return elementEntity.getSubElementIds().stream().filter(subelementId -> {
+        ElementEntityContext subElementContext = new ElementEntityContext(
+                context.getUser().getUserName(),
+                itemId,
+                versionId);
+        if(changeRef!= null){
+          subElementContext.setChangeRef(changeRef);
+        }
         Optional<ElementEntity> subElementEntity =
-            cassandraElementRepository.get(context, new ElementEntityContext(
-                    context.getUser().getUserName(),
-                    itemId,
-                    versionId),
-                new ElementEntity(subelementId));
+                cassandraElementRepository.get(context, subElementContext,
+                        new ElementEntity(subelementId));
         if (subElementEntity.isPresent()) {
-          if("name".equals(name)){
-            if(value.equals(subElementEntity.get().getInfo().getName())){
+          if (NAME.equals(name)) {
+            if (value.equals(subElementEntity.get().getInfo().getName())) {
               return true;
             }
           }
@@ -87,9 +134,7 @@ public class VspGeneralLoader {
     return null;
 
 
+  }
 
 
-
-
-  }
 }