aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/store/ItemHandler.java
blob: 801984ab24b6798c60bd7d0301ebdc971c2ceed0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package org.openecomp.core.migration.store;

import com.amdocs.zusammen.datatypes.Id;
import com.amdocs.zusammen.datatypes.Namespace;
import com.amdocs.zusammen.datatypes.SessionContext;
import com.amdocs.zusammen.datatypes.item.Info;
import com.amdocs.zusammen.datatypes.item.ItemVersionData;
import com.amdocs.zusammen.datatypes.item.Relation;
import com.amdocs.zusammen.plugin.statestore.cassandra.dao.impl.ItemCassandraDao;
import com.amdocs.zusammen.plugin.statestore.cassandra.dao.impl.VersionCassandraDao;
import com.amdocs.zusammen.plugin.statestore.cassandra.dao.types.ElementEntity;

import org.openecomp.core.migration.MigrationMain;
import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.dao.types.VersionInfoEntity;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class ItemHandler {

    public static ElementEntity getElementEntity(String id, List<String>
      elementPath, Info info, Collection<Relation> relations, List<String> subElements,
                                                byte[] data) {
    ElementEntity elementEntity = new ElementEntity(new Id(id));

    Namespace namespace = new Namespace();
    for (String elementId : elementPath) {
      namespace = new Namespace(namespace, new Id(elementId));
    }
    elementEntity.setNamespace(namespace);
    elementEntity.setParentId(namespace.getParentElementId());
    elementEntity.setInfo(info);
    elementEntity.setRelations(relations);
    if(subElements!=null) {
      Set<Id> subElementSet = new HashSet<>();

      subElements.forEach(subElement -> subElementSet.add(new Id(subElement)));

      elementEntity.setSubElementIds(subElementSet);
    }

    //elementEntity.setData(new ByteArrayInputStream(data));
    return elementEntity;
  }

  public static List<String> getElementPath(String... paths) {
    List<String> pathList = new ArrayList<>();
    for (String path : paths) {
      pathList.add(path);
    }
    return pathList;
  }

  public static Info getStractualElementInfo(String elementName) {
    Info info = new Info();
    info.setName(elementName);
    return info;
  }

  public static void save(SessionContext context, ItemCassandraDao itemCassandraDao,
                          VersionCassandraDao versionCassandraDao,
                          String itemId, Version versionId, Info info,
                          ItemVersionData itemVersionData, Long writetimeMicroSeconds) {

    Date date = writetimeMicroSeconds==null?new Date():new Date(writetimeMicroSeconds);
    itemCassandraDao.create(context,new Id(itemId),info,date);

    versionCassandraDao.create(context, context.getUser().getUserName(),new Id(itemId),
        null,getVersionId(itemId,versionId),itemVersionData,date);

    if(isActiveVersion(itemId,versionId)){
      versionCassandraDao.create(context, context.getUser().getUserName(),new Id(itemId),
          null,new Id(versionId.toString()),itemVersionData,date);
    }
  }



  private static Info getInfo(VendorLicenseModelEntity vlmEntity) {
    Info info = new Info();

    info.setName(vlmEntity.getVendorName());
    info.setDescription(vlmEntity.getDescription());
    info.addProperty("iconRef",vlmEntity.getIconRef());
    info.addProperty("type",vlmEntity.getIconRef());
    return info;
  }

  private static Id getVersionId(String itemId, Version versionId) {
    VersionInfoEntity versionInfo =
        MigrationMain.getVersionInfoMap().get(itemId);
    if (versionInfo == null) {
      return new Id(versionId.toString());
    }
    Version lastVersion = versionInfo.getCandidate() != null ? versionInfo.getCandidate()
        .getVersion()
        : versionInfo.getActiveVersion();

    if (lastVersion.equals(versionId)) {
      return new Id(itemId);
    } else {
      return new Id(versionId.toString());
    }
  }
  private static boolean isActiveVersion(String itemId, Version versionId) {
    VersionInfoEntity versionInfo =
        MigrationMain.getVersionInfoMap().get(itemId);
    if (versionInfo == null) {
      return false;
    }

    return versionInfo.getActiveVersion().equals(versionId);
  }


}