[SDC] Onboarding 1710 rebase.
[sdc.git] / openecomp-be / lib / openecomp-sdc-vendor-license-lib / openecomp-sdc-vendor-license-core / src / main / java / org / openecomp / sdc / vendorlicense / dao / impl / zusammen / VlmZusammenUtil.java
1 package org.openecomp.sdc.vendorlicense.dao.impl.zusammen;
2
3 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
4 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
5 import com.amdocs.zusammen.datatypes.Id;
6 import com.amdocs.zusammen.datatypes.SessionContext;
7 import com.amdocs.zusammen.datatypes.item.Action;
8 import com.amdocs.zusammen.datatypes.item.ItemVersion;
9 import com.amdocs.zusammen.datatypes.item.Relation;
10 import com.amdocs.zusammen.datatypes.item.RelationEdge;
11 import org.openecomp.core.zusammen.api.ZusammenAdaptor;
12 import org.openecomp.core.zusammen.api.ZusammenUtil;
13 import org.openecomp.sdc.common.errors.CoreException;
14 import org.openecomp.sdc.vendorlicense.errors.VendorLicenseModelNotFoundErrorBuilder;
15 import org.openecomp.sdc.versioning.dao.types.Version;
16 import org.openecomp.sdc.versioning.dao.types.VersionStatus;
17
18 import java.util.Optional;
19 import java.util.stream.Collectors;
20
21 public class VlmZusammenUtil {
22
23   static ItemVersion getFirstVersion(SessionContext context, Id itemId,
24                                      ZusammenAdaptor zusammenAdaptor) {
25     Optional<ItemVersion> itemVersion = zusammenAdaptor.getFirstVersion(context, itemId);
26
27     if (!itemVersion.isPresent()) {
28       throw new CoreException(
29           new VendorLicenseModelNotFoundErrorBuilder(itemId.getValue()).build());
30     }
31     return itemVersion.get();
32   }
33
34   static Id getFirstVersionId(SessionContext context, Id itemId, ZusammenAdaptor zusammenAdaptor) {
35     return getFirstVersion(context, itemId, zusammenAdaptor).getId();
36   }
37
38   // TODO: 4/25/2017 remove upon working with more than one single version
39   static String getVersionTag(Version version) {
40     return version.getStatus() == VersionStatus.Locked
41         ? null
42         : version.toString();
43   }
44
45   static ZusammenElement buildStructuralElement(StructureElement structureElement, Action action) {
46     return ZusammenUtil.buildStructuralElement(structureElement.name(), action);
47   }
48
49   static ZusammenElement getZusammenElement(ElementInfo elementInfo) {
50     ZusammenElement zusammenElement = new ZusammenElement();
51     zusammenElement.setElementId(elementInfo.getId());
52     zusammenElement.setInfo(elementInfo.getInfo());
53     zusammenElement.setRelations(elementInfo.getRelations());
54     zusammenElement.setSubElements(elementInfo.getSubElements().stream()
55         .map(VlmZusammenUtil::getZusammenElement)
56         .collect(Collectors.toList()));
57     return zusammenElement;
58   }
59
60   public static Relation createRelation(RelationType type, String to) {
61     Relation relation = new Relation();
62     relation.setType(type.name());
63     RelationEdge edge2 = new RelationEdge();
64     edge2.setElementId(new Id(to));
65     relation.setEdge2(edge2);
66     return relation;
67   }
68
69   public static Integer toInteger(Object val) {
70     if (val instanceof Double) {
71       return ((Double) val).intValue();
72     } else if (val instanceof String) {
73       return new Integer((String) val);
74     } else if (val instanceof Integer) {
75       return (Integer) val;
76     }
77     throw new RuntimeException("invalid value for integer:" + val.getClass());
78   }
79 }