[SDC-29] rebase continue work to align source
[sdc.git] / openecomp-be / lib / openecomp-sdc-vendor-software-product-lib / openecomp-sdc-vendor-software-product-core / src / main / java / org / openecomp / sdc / vendorsoftwareproduct / dao / impl / zusammen / OrchestrationTemplateDaoZusammenImpl.java
1 package org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen;
2
3 import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
4 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
5 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
6 import com.amdocs.zusammen.datatypes.Id;
7 import com.amdocs.zusammen.datatypes.SessionContext;
8 import com.amdocs.zusammen.datatypes.item.Action;
9 import com.amdocs.zusammen.datatypes.item.ElementContext;
10 import com.amdocs.zusammen.utils.fileutils.FileUtils;
11 import org.openecomp.core.zusammen.api.ZusammenAdaptor;
12 import org.openecomp.core.zusammen.api.ZusammenUtil;
13 import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao;
14 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.UploadData;
15 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.UploadDataEntity;
16 import org.openecomp.sdc.versioning.dao.types.Version;
17
18 import java.io.ByteArrayInputStream;
19 import java.nio.ByteBuffer;
20 import java.util.Optional;
21
22 public class OrchestrationTemplateDaoZusammenImpl implements OrchestrationTemplateDao {
23
24   private ZusammenAdaptor zusammenAdaptor;
25
26   public OrchestrationTemplateDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) {
27     this.zusammenAdaptor = zusammenAdaptor;
28   }
29
30   @Override
31   public void registerVersioning(String versionableEntityType) {
32
33   }
34
35   @Override
36   public String getValidationData(String vspId, Version version) {
37     SessionContext context = ZusammenUtil.createSessionContext();
38     Id itemId = new Id(vspId);
39     ElementContext elementContext = new ElementContext(itemId,
40         VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
41         VspZusammenUtil.getVersionTag(version));
42
43     Optional<ElementInfo> elementInfo = zusammenAdaptor
44         .getElementInfoByName(context, elementContext, null,
45             StructureElement.OrchestrationTemplate.name());
46     if (elementInfo.isPresent()) {
47       Optional<Element> element =
48           zusammenAdaptor.getElementByName(context, elementContext, elementInfo.get().getId(),
49               StructureElement.OrchestrationTemplateValidationData.name());
50       if (element.isPresent()) {
51         return new String(FileUtils.toByteArray(element.get().getData()));
52       }
53     }
54
55     return null;
56   }
57
58   @Override
59   public UploadDataEntity getOrchestrationTemplate(String vspId, Version version) {
60
61     UploadDataEntity uploadData = new UploadDataEntity();
62     SessionContext context = ZusammenUtil.createSessionContext();
63     Id itemId = new Id(vspId);
64     ElementContext elementContext = new ElementContext(itemId,
65         VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
66         VspZusammenUtil.getVersionTag(version));
67
68     Optional<ElementInfo> elementInfo = zusammenAdaptor
69         .getElementInfoByName(context, elementContext, null,
70             StructureElement.OrchestrationTemplate.name());
71     if (elementInfo.isPresent()) {
72       Optional<Element> element =
73           zusammenAdaptor.getElementByName(context, elementContext, elementInfo.get().getId(),
74               StructureElement.OrchestrationTemplateValidationData.name());
75       element.ifPresent(element1 -> uploadData
76           .setValidationData(new String(FileUtils.toByteArray(element1.getData()))));
77       element =
78           zusammenAdaptor.getElementByName(context, elementContext, elementInfo.get().getId(),
79               StructureElement.OrchestrationTemplateContent.name());
80       element.ifPresent(element1 -> uploadData
81           .setContentData(ByteBuffer.wrap(FileUtils.toByteArray(element1.getData()))));
82     }
83     return uploadData;
84   }
85
86   @Override
87   public void updateOrchestrationTemplateData(String vspId, UploadData uploadData) {
88     ZusammenElement orchestrationTemplateElement =
89         VspZusammenUtil.buildStructuralElement(StructureElement.OrchestrationTemplate, null);
90     ZusammenElement orchestrationTemplateValidationDataElement =
91         VspZusammenUtil
92             .buildStructuralElement(StructureElement.OrchestrationTemplateValidationData, Action.UPDATE);
93     orchestrationTemplateValidationDataElement.setData(new ByteArrayInputStream(uploadData
94         .getValidationData().getBytes()));
95     ZusammenElement orchestrationTemplateContent =
96         VspZusammenUtil.buildStructuralElement(StructureElement.OrchestrationTemplateContent, Action.UPDATE);
97     orchestrationTemplateContent
98         .setData(new ByteArrayInputStream(uploadData.getContentData().array()));
99     orchestrationTemplateElement.addSubElement(orchestrationTemplateValidationDataElement);
100     orchestrationTemplateElement.addSubElement(orchestrationTemplateContent);
101
102     SessionContext context = ZusammenUtil.createSessionContext();
103     Id itemId = new Id(vspId);
104     ElementContext elementContext = new ElementContext(itemId,
105         VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
106
107     zusammenAdaptor.saveElement(context, elementContext, orchestrationTemplateElement, "Update " +
108         "Orchestration Template");
109   }
110
111 }