1 package org.openecomp.sdc.vendorsoftwareproduct.impl;
3 import org.apache.commons.lang3.StringUtils;
4 import org.openecomp.sdc.common.errors.CoreException;
5 import org.openecomp.sdc.common.errors.ErrorCode;
6 import org.openecomp.sdc.datatypes.error.ErrorLevel;
7 import org.openecomp.sdc.logging.api.Logger;
8 import org.openecomp.sdc.logging.api.LoggerFactory;
9 import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
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.VendorSoftwareProductDao;
16 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
17 import org.openecomp.sdc.vendorsoftwareproduct.errors.ComponentDependencyModelErrorBuilder;
18 import org.openecomp.sdc.versioning.dao.types.Version;
20 import java.util.Collection;
21 import java.util.List;
23 public class ComponentDependencyModelManagerImpl implements ComponentDependencyModelManager {
25 private VendorSoftwareProductDao vendorSoftwareProductDao;
26 private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
27 protected static final Logger logger =
28 LoggerFactory.getLogger(ComponentDependencyModelManagerImpl.class);
30 private ComponentManager componentManager;
32 public ComponentDependencyModelManagerImpl(VendorSoftwareProductDao vendorSoftwareProductDao, ComponentManager componentManager) {
33 this.vendorSoftwareProductDao = vendorSoftwareProductDao;
34 this.componentManager = componentManager;
38 public void createComponentDependencyModel(List<ComponentDependencyModelEntity> entities,
39 String vspId, Version version, String user) {
41 mdcDataDebugMessage.debugEntryMessage("createComponentDependencyModel");
42 for(ComponentDependencyModelEntity entity : entities) {
43 if (!StringUtils.isEmpty(entity.getSourceComponentId())) {
44 componentManager.validateComponentExistence(entity.getVspId(), entity.getVersion(),
45 entity.getSourceComponentId(), user);
46 if (entity.getSourceComponentId().equals(entity.getTargetComponentId())) {
48 ComponentDependencyModelErrorBuilder.getSourceTargetComponentEqualErrorBuilder();
49 raiseException(errorCode);
52 ErrorCode errorCode = ComponentDependencyModelErrorBuilder
53 .getNoSourceComponentErrorBuilder();
54 raiseException(errorCode);
57 if (!StringUtils.isEmpty(entity.getTargetComponentId())) {
58 componentManager.validateComponentExistence(entity.getVspId(), entity.getVersion(),
59 entity.getTargetComponentId(), user);
63 vendorSoftwareProductDao.createComponentDependencyModel(entities, vspId, version );
65 mdcDataDebugMessage.debugExitMessage("createComponentDependencyModel");
68 private void raiseException(ErrorCode errorCode) {
69 MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
70 LoggerTragetServiceName.CREATE_COMPONENT_DEPENDENCY_MODEL, ErrorLevel.ERROR.name(),
71 errorCode.id(), errorCode.message());
72 throw new CoreException(errorCode);
76 public Collection<ComponentDependencyModelEntity> list(String vspId, Version version, String
79 mdcDataDebugMessage.debugExitMessage("VSP id, version", vspId, version.toString());
81 return vendorSoftwareProductDao.listComponentDependencies(vspId, version);