[SDC-29] Amdocs OnBoard 1707 initial commit.
[sdc.git] / openecomp-be / lib / openecomp-sdc-model-lib / openecomp-sdc-model-impl / src / main / java / org / openecomp / sdc / model / impl / zusammen / EnrichedServiceModelDaoZusammenImpl.java
1 package org.openecomp.sdc.model.impl.zusammen;
2
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.ElementContext;
8 import org.openecomp.core.model.dao.EnrichedServiceModelDao;
9 import org.openecomp.core.model.types.ServiceArtifact;
10 import org.openecomp.core.model.types.ServiceElement;
11 import org.openecomp.core.utilities.file.FileUtils;
12 import org.openecomp.core.zusammen.api.ZusammenAdaptor;
13 import org.openecomp.core.zusammen.api.ZusammenUtil;
14 import org.openecomp.sdc.logging.api.Logger;
15 import org.openecomp.sdc.logging.api.LoggerFactory;
16 import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
17 import org.openecomp.sdc.versioning.dao.types.Version;
18
19 public class EnrichedServiceModelDaoZusammenImpl extends ServiceModelDaoZusammenImpl implements
20     EnrichedServiceModelDao<ToscaServiceModel, ServiceElement> {
21
22   private static final Logger logger =
23       LoggerFactory.getLogger(EnrichedServiceModelDaoZusammenImpl.class);
24
25   public EnrichedServiceModelDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) {
26     super(zusammenAdaptor);
27     this.name = StructureElement.EnrichedServiceModel.name();
28   }
29
30   @Override
31   public void storeExternalArtifact(ServiceArtifact serviceArtifact) {
32     ZusammenElement artifactElement = buildArtifactElement(serviceArtifact.getName(),
33         FileUtils.toByteArray(serviceArtifact.getContent()), Action.CREATE);
34
35     ZusammenElement artifactsElement =
36         buildStructuralElement(StructureElement.Artifacts.name(), null);
37     artifactsElement.addSubElement(artifactElement);
38
39     ZusammenElement enrichedServiceModelElement = buildStructuralElement(name, null);
40     enrichedServiceModelElement.addSubElement(artifactsElement);
41
42     SessionContext context = ZusammenUtil.createSessionContext();
43     Id itemId = new Id(serviceArtifact.getVspId());
44     ElementContext elementContext = new ElementContext(itemId, getFirstVersionId(context, itemId));
45     zusammenAdaptor
46         .saveElement(context, elementContext, enrichedServiceModelElement, "add service artifact.");
47
48     logger.info("Finished adding artifact to service model for vsp id -> " +
49         elementContext.getItemId().getValue());
50   }
51 }