[sdc] - latest code changes
[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 / VendorSoftwareProductDaoImpl.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.vendorsoftwareproduct.dao.impl;
22
23 import org.openecomp.core.model.dao.EnrichedServiceArtifactDao;
24 import org.openecomp.core.model.dao.EnrichedServiceArtifactDaoFactory;
25 import org.openecomp.core.model.dao.EnrichedServiceModelDao;
26 import org.openecomp.core.model.dao.EnrichedServiceModelDaoFactory;
27 import org.openecomp.core.model.dao.ServiceArtifactDaoFactory;
28 import org.openecomp.core.model.dao.ServiceArtifactDaoInter;
29 import org.openecomp.core.model.dao.ServiceModelDao;
30 import org.openecomp.core.model.dao.ServiceModelDaoFactory;
31 import org.openecomp.core.model.dao.ServiceTemplateDaoFactory;
32 import org.openecomp.core.model.dao.ServiceTemplateDaoInter;
33 import org.openecomp.core.utilities.CommonMethods;
34 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
35 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
36 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDao;
37 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDaoFactory;
38 import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDao;
39 import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDaoFactory;
40 import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDao;
41 import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDaoFactory;
42 import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao;
43 import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDaoFactory;
44 import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDao;
45 import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDaoFactory;
46 import org.openecomp.sdc.vendorsoftwareproduct.dao.PackageInfoDao;
47 import org.openecomp.sdc.vendorsoftwareproduct.dao.PackageInfoDaoFactory;
48 import org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessDao;
49 import org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessDaoFactory;
50 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
51 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
52 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
53 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
54 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
55 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
56 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity;
57 import org.openecomp.sdc.versioning.dao.types.Version;
58
59 import java.nio.ByteBuffer;
60 import java.util.Collection;
61 import java.util.List;
62
63 public class VendorSoftwareProductDaoImpl implements VendorSoftwareProductDao {
64
65   private static final VendorSoftwareProductInfoDao vspInfoDao = VendorSoftwareProductInfoDaoFactory
66       .getInstance().createInterface();
67   private static final PackageInfoDao packageInfoDao =
68       PackageInfoDaoFactory.getInstance().createInterface();
69   private static final OrchestrationTemplateCandidateDao orchestrationTemplateCandidateDataDao =
70       OrchestrationTemplateCandidateDaoFactory.getInstance().createInterface();
71   private static final NetworkDao networkDao = NetworkDaoFactory.getInstance().createInterface();
72   private static final ComponentDao componentDao =
73       ComponentDaoFactory.getInstance().createInterface();
74   private static final NicDao nicDao = NicDaoFactory.getInstance().createInterface();
75   private static final ProcessDao processDao = ProcessDaoFactory.getInstance().createInterface();
76   private static final MibDao
77       MIB_DAO = MibDaoFactory.getInstance().createInterface();
78   private static final ServiceArtifactDaoInter
79       artifactDao = ServiceArtifactDaoFactory.getInstance().createInterface();
80   public static final ServiceTemplateDaoInter
81       templateDao = ServiceTemplateDaoFactory.getInstance().createInterface();
82   private static final EnrichedServiceArtifactDao enrichArtifactDao =
83       EnrichedServiceArtifactDaoFactory.getInstance().createInterface();
84   private static final EnrichedServiceModelDao enrichedServiceModelDao =
85       EnrichedServiceModelDaoFactory.getInstance().createInterface();
86   private static final ServiceModelDao serviceModelDao =
87       ServiceModelDaoFactory.getInstance().createInterface();
88   private static final ComponentDependencyModelDao componentDependencyModelDao =
89       ComponentDependencyModelDaoFactory.getInstance().createInterface();
90
91   @Override
92   public void registerVersioning(String versionableEntityType) {
93     vspInfoDao.registerVersioning(versionableEntityType);
94     networkDao.registerVersioning(versionableEntityType);
95     componentDao.registerVersioning(versionableEntityType);
96     nicDao.registerVersioning(versionableEntityType);
97     processDao.registerVersioning(versionableEntityType);
98     orchestrationTemplateCandidateDataDao.registerVersioning(versionableEntityType);
99     componentDependencyModelDao.registerVersioning(versionableEntityType);
100   }
101
102   @Override
103   public Collection<ComponentEntity> listComponents(String vspId, Version version) {
104     return componentDao.list(new ComponentEntity(vspId, version, null));
105   }
106
107   @Override
108   public Collection<ComponentEntity> listComponentsQuestionnaire(String vspId, Version version) {
109     return componentDao.listQuestionnaires(vspId, version);
110   }
111
112   @Override
113   public Collection<ComponentEntity> listComponentsCompositionAndQuestionnaire(String vspId,
114                                                                                Version version) {
115     return componentDao.listCompositionAndQuestionnaire(vspId, version);
116   }
117
118   @Override
119   public Collection<ProcessEntity> listProcesses(String vspId, Version version,
120                                                  String componentId) {
121     return processDao.list(new ProcessEntity(vspId, version, componentId, null));
122   }
123
124   @Override
125   public void deleteProcesses(String vspId, Version version, String componentId) {
126     processDao.delete(new ProcessEntity(vspId, version, componentId, null));
127   }
128
129   @Override
130   public ProcessEntity getProcess(String vspId, Version version, String componentId,
131                                   String processId) {
132     return processDao.get(new ProcessEntity(vspId, version, componentId, processId));
133   }
134
135   @Override
136   public void createProcess(ProcessEntity processEntity) {
137     processDao.create(processEntity);
138   }
139
140   @Override
141   public void updateProcess(ProcessEntity processEntity) {
142     ProcessEntity process = processDao.get(new ProcessEntity(processEntity.getVspId(), processEntity.getVersion(),
143             processEntity.getComponentId(), processEntity.getId()));
144     processEntity.setArtifact(process.getArtifact());
145     processEntity.setArtifactName(process.getArtifactName());
146     processDao.update(processEntity);
147   }
148
149   @Override
150   public void deleteProcess(String vspId, Version version, String componentId, String processId) {
151     processDao.delete(new ProcessEntity(vspId, version, componentId, processId));
152   }
153
154   @Override
155   public void uploadProcessArtifact(String vspId, Version version, String componentId,
156                                     String processId, byte[] artifact, String artifactName) {
157     ProcessEntity
158         processArtifact = new ProcessEntity(vspId, version, componentId, processId);
159     processArtifact = processDao.get(processArtifact);
160     processArtifact.setArtifact(ByteBuffer.wrap(artifact));
161     processArtifact.setArtifactName(artifactName);
162     processDao.update(processArtifact);
163   }
164
165   @Override
166   public ProcessEntity getProcessArtifact(String vspId, Version version, String componentId,
167                                           String processId) {
168     return processDao
169         .get(new ProcessEntity(vspId, version, componentId, processId));
170   }
171
172   @Override
173   public void deleteProcessArtifact(String vspId, Version version, String componentId,
174                                     String processId) {
175     processDao.delete(new ProcessEntity(vspId, version, componentId, processId));
176   }
177
178   @Override
179   public Collection<NicEntity> listNicsByVsp(String vspId, Version version) {
180     return nicDao.listByVsp(vspId, version);
181   }
182
183   @Override
184   public void deleteUploadData(String vspId, Version version) {
185
186     networkDao.deleteAll(vspId, version);
187     //nicDao.deleteByVspId(vspId, version);
188     //artifactDao.delete(vspId, version);
189     //templateDao.deleteAll(vspId, version);
190     enrichedServiceModelDao.deleteAll(vspId, version);
191     serviceModelDao.deleteAll(vspId, version);
192     //processDao.deleteVspAll(vspId,version);
193     componentDao.deleteAll(vspId, version);
194     vspInfoDao.deleteAll(vspId, version);
195
196 //    uploadDataDao.deleteContentDataAndValidationData(vspId, version);
197
198 //    enrichArtifactDao.deleteAll(vspId, version);
199 //    artifactDao.deleteAll(vspId, version);
200   }
201
202   /* @Override
203    public void updateVspLatestModificationTime(String vspId, Version version) {
204    *//*  if (Objects.isNull(vspId) || Objects.isNull(version)) {
205       return;
206     }
207
208     VspDetails retrieved = getVendorSoftwareProductInfo(new VspDetails(vspId, version));
209     updateVendorSoftwareProductInfo(retrieved);*//*
210   }
211 */
212   @Override
213   public void createComponentDependencyModel(List<ComponentDependencyModelEntity>
214                                                  componentDependencyModel, String vspId,
215                                              Version version) {
216     componentDependencyModelDao.deleteAll(vspId, version);
217     for (ComponentDependencyModelEntity entity : componentDependencyModel) {
218       entity.setId(CommonMethods.nextUuId());
219       componentDependencyModelDao.create(entity);
220     }
221   }
222
223   @Override
224   public Collection<ComponentDependencyModelEntity> listComponentDependencies(String vspId,
225                                                                               Version version) {
226     return componentDependencyModelDao.list(new ComponentDependencyModelEntity(vspId, version,
227         null));
228   }
229 }