1 package org.openecomp.core.migration.store;
3 import com.amdocs.zusammen.datatypes.Id;
4 import com.amdocs.zusammen.datatypes.Namespace;
5 import com.amdocs.zusammen.datatypes.SessionContext;
6 import com.amdocs.zusammen.datatypes.item.Info;
7 import com.amdocs.zusammen.datatypes.item.ItemVersionData;
8 import com.amdocs.zusammen.datatypes.item.Relation;
9 import com.amdocs.zusammen.plugin.statestore.cassandra.dao.impl.ItemCassandraDao;
10 import com.amdocs.zusammen.plugin.statestore.cassandra.dao.impl.VersionCassandraDao;
11 import com.amdocs.zusammen.plugin.statestore.cassandra.dao.types.ElementEntity;
13 import org.openecomp.core.migration.MigrationMain;
14 import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity;
15 import org.openecomp.sdc.versioning.dao.types.Version;
16 import org.openecomp.sdc.versioning.dao.types.VersionInfoEntity;
18 import java.util.ArrayList;
19 import java.util.Collection;
20 import java.util.Date;
21 import java.util.HashSet;
22 import java.util.List;
25 public class ItemHandler {
27 public static ElementEntity getElementEntity(String id, List<String>
28 elementPath, Info info, Collection<Relation> relations, List<String> subElements,
30 ElementEntity elementEntity = new ElementEntity(new Id(id));
32 Namespace namespace = new Namespace();
33 for (String elementId : elementPath) {
34 namespace = new Namespace(namespace, new Id(elementId));
36 elementEntity.setNamespace(namespace);
37 elementEntity.setParentId(namespace.getParentElementId());
38 elementEntity.setInfo(info);
39 elementEntity.setRelations(relations);
40 if(subElements!=null) {
41 Set<Id> subElementSet = new HashSet<>();
43 subElements.forEach(subElement -> subElementSet.add(new Id(subElement)));
45 elementEntity.setSubElementIds(subElementSet);
48 //elementEntity.setData(new ByteArrayInputStream(data));
52 public static List<String> getElementPath(String... paths) {
53 List<String> pathList = new ArrayList<>();
54 for (String path : paths) {
60 public static Info getStractualElementInfo(String elementName) {
61 Info info = new Info();
62 info.setName(elementName);
66 public static void save(SessionContext context, ItemCassandraDao itemCassandraDao,
67 VersionCassandraDao versionCassandraDao,
68 String itemId, Version versionId, Info info,
69 ItemVersionData itemVersionData, Long writetimeMicroSeconds) {
71 Date date = writetimeMicroSeconds==null?new Date():new Date(writetimeMicroSeconds);
72 itemCassandraDao.create(context,new Id(itemId),info,date);
74 versionCassandraDao.create(context, context.getUser().getUserName(),new Id(itemId),
75 null,getVersionId(itemId,versionId),itemVersionData,date);
77 if(isActiveVersion(itemId,versionId)){
78 versionCassandraDao.create(context, context.getUser().getUserName(),new Id(itemId),
79 null,new Id(versionId.toString()),itemVersionData,date);
85 private static Info getInfo(VendorLicenseModelEntity vlmEntity) {
86 Info info = new Info();
88 info.setName(vlmEntity.getVendorName());
89 info.setDescription(vlmEntity.getDescription());
90 info.addProperty("iconRef",vlmEntity.getIconRef());
91 info.addProperty("type",vlmEntity.getIconRef());
95 private static Id getVersionId(String itemId, Version versionId) {
96 VersionInfoEntity versionInfo =
97 MigrationMain.getVersionInfoMap().get(itemId);
98 if (versionInfo == null) {
99 return new Id(versionId.toString());
101 Version lastVersion = versionInfo.getCandidate() != null ? versionInfo.getCandidate()
103 : versionInfo.getActiveVersion();
105 if (lastVersion.equals(versionId)) {
106 return new Id(itemId);
108 return new Id(versionId.toString());
111 private static boolean isActiveVersion(String itemId, Version versionId) {
112 VersionInfoEntity versionInfo =
113 MigrationMain.getVersionInfoMap().get(itemId);
114 if (versionInfo == null) {
118 return versionInfo.getActiveVersion().equals(versionId);