2 * Copyright © 2016-2017 European Support Limited
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.openecomp.sdc.vendorsoftwareproduct.impl;
19 import org.apache.commons.lang3.StringUtils;
20 import org.openecomp.core.utilities.CommonMethods;
21 import org.openecomp.sdc.common.errors.CoreException;
22 import org.openecomp.sdc.common.errors.ErrorCode;
23 import org.openecomp.sdc.vendorsoftwareproduct.ComponentDependencyModelManager;
24 import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager;
25 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDao;
26 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
27 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
28 import org.openecomp.sdc.vendorsoftwareproduct.errors.ComponentDependencyModelErrorBuilder;
29 import org.openecomp.sdc.versioning.VersioningUtil;
30 import org.openecomp.sdc.versioning.dao.types.Version;
32 import java.util.Collection;
34 public class ComponentDependencyModelManagerImpl implements ComponentDependencyModelManager {
36 private ComponentManager componentManager;
37 private ComponentDependencyModelDao componentDependencyModelDao;
39 public ComponentDependencyModelManagerImpl(
40 ComponentManager componentManager, ComponentDependencyModelDao componentDependencyModelDao) {
41 this.componentManager = componentManager;
42 this.componentDependencyModelDao = componentDependencyModelDao;
46 public Collection<ComponentDependencyModelEntity> list(String vspId, Version version) {
47 return componentDependencyModelDao
48 .list(new ComponentDependencyModelEntity(vspId, version, null));
52 public ComponentDependencyModelEntity createComponentDependency(ComponentDependencyModelEntity
56 validateComponentDependency(entity);
57 entity.setId(CommonMethods.nextUuId());
58 componentDependencyModelDao.create(entity);
62 private void validateComponentDependency(ComponentDependencyModelEntity entity) {
63 if (!StringUtils.isEmpty(entity.getSourceComponentId())) {
64 componentManager.validateComponentExistence(entity.getVspId(), entity.getVersion(),
65 entity.getSourceComponentId());
66 if (entity.getSourceComponentId().equals(entity.getTargetComponentId())) {
68 ComponentDependencyModelErrorBuilder.getSourceTargetComponentEqualErrorBuilder();
69 throw new CoreException(errorCode);
72 ErrorCode errorCode = ComponentDependencyModelErrorBuilder
73 .getNoSourceComponentErrorBuilder();
74 throw new CoreException(errorCode);
77 if (!StringUtils.isEmpty(entity.getTargetComponentId())) {
78 componentManager.validateComponentExistence(entity.getVspId(), entity.getVersion(),
79 entity.getTargetComponentId());
84 public void delete(String vspId, Version version, String dependencyId) {
85 ComponentDependencyModelEntity componentDependencyEntity = getComponentDependency(vspId,
86 version, dependencyId);
87 if (componentDependencyEntity != null) {
88 componentDependencyModelDao.delete(componentDependencyEntity);
93 public void update(ComponentDependencyModelEntity entity) {
94 getComponentDependency(entity.getVspId(), entity.getVersion(), entity.getId());
95 validateComponentDependency(entity);
96 componentDependencyModelDao.update(entity);
100 public ComponentDependencyModelEntity get(String vspId, Version version, String dependencyId) {
101 return getComponentDependency(vspId, version, dependencyId);
104 private ComponentDependencyModelEntity getComponentDependency(String vspId, Version version,
105 String dependencyId) {
106 ComponentDependencyModelEntity retrieved = componentDependencyModelDao.get(
107 new ComponentDependencyModelEntity(vspId, version, dependencyId));
108 VersioningUtil.validateEntityExistence(retrieved, new ComponentDependencyModelEntity(
109 vspId, version, dependencyId), VspDetails.ENTITY_TYPE);