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.ComponentManagerFactory;
16 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
17 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
18 import org.openecomp.sdc.vendorsoftwareproduct.errors.ComponentDependencyModelErrorBuilder;
19 import org.openecomp.sdc.versioning.dao.types.Version;
21 import java.util.Collection;
22 import java.util.List;
24 public class ComponentDependencyModelManagerImpl implements ComponentDependencyModelManager {
26 private VendorSoftwareProductDao vendorSoftwareProductDao;
27 private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
28 protected static final Logger logger =
29 LoggerFactory.getLogger(ComponentDependencyModelManagerImpl.class);
31 private ComponentManager componentManager;
33 public ComponentDependencyModelManagerImpl(VendorSoftwareProductDao vendorSoftwareProductDao, ComponentManager componentManager) {
34 this.vendorSoftwareProductDao = vendorSoftwareProductDao;
35 this.componentManager = componentManager;
39 public void createComponentDependencyModel(List<ComponentDependencyModelEntity> entities,
40 String vspId, Version version, String user) {
42 mdcDataDebugMessage.debugEntryMessage("createComponentDependencyModel");
43 for(ComponentDependencyModelEntity entity : entities) {
44 if (!StringUtils.isEmpty(entity.getSourceComponentId())) {
45 componentManager.validateComponentExistence(entity.getVspId(), entity.getVersion(),
46 entity.getSourceComponentId(), user);
47 if (entity.getSourceComponentId().equals(entity.getTargetComponentId())) {
49 ComponentDependencyModelErrorBuilder.getSourceTargetComponentEqualErrorBuilder();
50 raiseException(errorCode);
53 ErrorCode errorCode = ComponentDependencyModelErrorBuilder
54 .getNoSourceComponentErrorBuilder();
55 raiseException(errorCode);
58 if (!StringUtils.isEmpty(entity.getTargetComponentId())) {
59 componentManager.validateComponentExistence(entity.getVspId(), entity.getVersion(),
60 entity.getTargetComponentId(), user);
64 vendorSoftwareProductDao.createComponentDependencyModel(entities, vspId, version );
66 mdcDataDebugMessage.debugExitMessage("createComponentDependencyModel");
69 private void raiseException(ErrorCode errorCode) {
70 MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
71 LoggerTragetServiceName.CREATE_COMPONENT_DEPENDENCY_MODEL, ErrorLevel.ERROR.name(),
72 errorCode.id(), errorCode.message());
73 throw new CoreException(errorCode);
77 public Collection<ComponentDependencyModelEntity> list(String vspId, Version version, String
80 mdcDataDebugMessage.debugExitMessage("VSP id, version", vspId, version.toString());
82 return vendorSoftwareProductDao.listComponentDependencies(vspId, version);