1 package org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen;
3 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
4 import com.amdocs.zusammen.datatypes.Id;
5 import com.amdocs.zusammen.datatypes.SessionContext;
6 import com.amdocs.zusammen.datatypes.item.Action;
7 import com.amdocs.zusammen.datatypes.item.ItemVersion;
8 import org.openecomp.core.zusammen.api.ZusammenAdaptor;
9 import org.openecomp.core.zusammen.api.ZusammenUtil;
10 import org.openecomp.sdc.common.errors.CoreException;
11 import org.openecomp.sdc.vendorsoftwareproduct.dao.errors.VendorSoftwareProductNotFoundErrorBuilder;
12 import org.openecomp.sdc.versioning.dao.types.Version;
13 import org.openecomp.sdc.versioning.dao.types.VersionStatus;
15 import java.util.Objects;
16 import java.util.Optional;
18 class VspZusammenUtil {
20 static ItemVersion getFirstVersion(SessionContext context, Id itemId, ZusammenAdaptor
23 Optional<ItemVersion> itemVersion = zusammenAdaptor.getFirstVersion(context, itemId);
25 if (!itemVersion.isPresent()) {
26 throw new CoreException(
27 new VendorSoftwareProductNotFoundErrorBuilder(itemId.getValue()).build());
29 return itemVersion.get();
32 static Id getFirstVersionId(SessionContext context, Id itemId, ZusammenAdaptor zusammenAdaptor) {
33 return getFirstVersion(context, itemId, zusammenAdaptor).getId();
36 // TODO: 4/25/2017 remove upon working with more than one single version
37 static String getVersionTag(Version version) {
38 return version.getStatus() == VersionStatus.Locked
43 static ZusammenElement buildStructuralElement(StructureElement structureElement, Action action) {
44 return ZusammenUtil.buildStructuralElement(structureElement.name(), action);
47 static ZusammenElement aggregateElements(ZusammenElement... elements) {
48 ZusammenElement head = null;
49 ZusammenElement father = null;
50 for (ZusammenElement element : elements) {
51 if (Objects.isNull(head)) {
52 head = father = element;
54 father.getSubElements().add(element);