1 package org.openecomp.sdc.vendorsoftwareproduct.impl;
3 import org.apache.commons.lang3.StringUtils;
4 import org.openecomp.core.utilities.CommonMethods;
5 import org.openecomp.sdc.common.errors.CoreException;
6 import org.openecomp.sdc.common.errors.ErrorCode;
7 import org.openecomp.sdc.datatypes.error.ErrorLevel;
8 import org.openecomp.sdc.logging.api.Logger;
9 import org.openecomp.sdc.logging.api.LoggerFactory;
10 import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
11 import org.openecomp.sdc.logging.types.LoggerConstants;
12 import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
13 import org.openecomp.sdc.vendorsoftwareproduct.ComponentDependencyModelManager;
14 import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager;
15 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDao;
16 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
17 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
18 import org.openecomp.sdc.vendorsoftwareproduct.errors.ComponentDependencyModelErrorBuilder;
19 import org.openecomp.sdc.versioning.VersioningUtil;
20 import org.openecomp.sdc.versioning.dao.types.Version;
22 import java.util.Collection;
24 public class ComponentDependencyModelManagerImpl implements ComponentDependencyModelManager {
25 protected static final Logger logger =
26 LoggerFactory.getLogger(ComponentDependencyModelManagerImpl.class);
28 private ComponentManager componentManager;
29 private ComponentDependencyModelDao componentDependencyModelDao;
31 public ComponentDependencyModelManagerImpl(
32 ComponentManager componentManager, ComponentDependencyModelDao componentDependencyModelDao) {
33 this.componentManager = componentManager;
34 this.componentDependencyModelDao = componentDependencyModelDao;
37 private void raiseException(ErrorCode errorCode) {
38 MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
39 LoggerTragetServiceName.CREATE_COMPONENT_DEPENDENCY_MODEL, ErrorLevel.ERROR.name(),
40 errorCode.id(), errorCode.message());
41 throw new CoreException(errorCode);
45 public Collection<ComponentDependencyModelEntity> list(String vspId, Version version) {
46 return componentDependencyModelDao
47 .list(new ComponentDependencyModelEntity(vspId, version, null));
51 public ComponentDependencyModelEntity createComponentDependency(ComponentDependencyModelEntity
55 validateComponentDependency(entity);
56 entity.setId(CommonMethods.nextUuId());
57 componentDependencyModelDao.create(entity);
61 private void validateComponentDependency(ComponentDependencyModelEntity entity) {
62 if (!StringUtils.isEmpty(entity.getSourceComponentId())) {
63 componentManager.validateComponentExistence(entity.getVspId(), entity.getVersion(),
64 entity.getSourceComponentId());
65 if (entity.getSourceComponentId().equals(entity.getTargetComponentId())) {
67 ComponentDependencyModelErrorBuilder.getSourceTargetComponentEqualErrorBuilder();
68 raiseException(errorCode);
71 ErrorCode errorCode = ComponentDependencyModelErrorBuilder
72 .getNoSourceComponentErrorBuilder();
73 raiseException(errorCode);
76 if (!StringUtils.isEmpty(entity.getTargetComponentId())) {
77 componentManager.validateComponentExistence(entity.getVspId(), entity.getVersion(),
78 entity.getTargetComponentId());
83 public void delete(String vspId, Version version, String dependencyId) {
84 ComponentDependencyModelEntity componentDependencyEntity = getComponentDependency(vspId,
85 version, dependencyId);
86 if (componentDependencyEntity != null) {
87 componentDependencyModelDao.delete(componentDependencyEntity);
92 public void update(ComponentDependencyModelEntity entity) {
93 ComponentDependencyModelEntity componentDependencyEntity = getComponentDependency(
94 entity.getVspId(), entity.getVersion(), entity.getId());
95 validateComponentDependency(entity);
96 componentDependencyModelDao.update(entity);
100 public ComponentDependencyModelEntity get(String vspId, Version version, String dependencyId) {
101 ComponentDependencyModelEntity componentDependency =
102 getComponentDependency(vspId, version, dependencyId);
103 return componentDependency;
106 private ComponentDependencyModelEntity getComponentDependency(String vspId, Version version,
107 String dependencyId) {
108 ComponentDependencyModelEntity retrieved = componentDependencyModelDao.get(
109 new ComponentDependencyModelEntity(vspId, version, dependencyId));
110 VersioningUtil.validateEntityExistence(retrieved, new ComponentDependencyModelEntity(
111 vspId, version, dependencyId), VspDetails.ENTITY_TYPE);