5dc14466018568d1be5b799b12b26f2867c6a926
[sdc.git] /
1 package org.openecomp.sdc.vendorsoftwareproduct.impl;
2
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;
19
20 import java.util.Collection;
21 import java.util.List;
22
23 public class ComponentDependencyModelManagerImpl implements ComponentDependencyModelManager {
24
25   private VendorSoftwareProductDao vendorSoftwareProductDao;
26   private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
27   protected static final Logger logger =
28       LoggerFactory.getLogger(ComponentDependencyModelManagerImpl.class);
29
30   private ComponentManager componentManager;
31
32   public ComponentDependencyModelManagerImpl(VendorSoftwareProductDao vendorSoftwareProductDao, ComponentManager componentManager) {
33     this.vendorSoftwareProductDao = vendorSoftwareProductDao;
34     this.componentManager = componentManager;
35   }
36
37   @Override
38   public void createComponentDependencyModel(List<ComponentDependencyModelEntity> entities,
39                                              String vspId, Version version, String user) {
40
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())) {
47           ErrorCode errorCode =
48               ComponentDependencyModelErrorBuilder.getSourceTargetComponentEqualErrorBuilder();
49           raiseException(errorCode);
50         }
51       } else {
52           ErrorCode errorCode = ComponentDependencyModelErrorBuilder
53               .getNoSourceComponentErrorBuilder();
54           raiseException(errorCode);
55       }
56
57       if (!StringUtils.isEmpty(entity.getTargetComponentId())) {
58         componentManager.validateComponentExistence(entity.getVspId(), entity.getVersion(),
59             entity.getTargetComponentId(), user);
60       }
61     }
62
63     vendorSoftwareProductDao.createComponentDependencyModel(entities, vspId, version );
64
65     mdcDataDebugMessage.debugExitMessage("createComponentDependencyModel");
66   }
67
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);
73   }
74
75   @Override
76   public Collection<ComponentDependencyModelEntity> list(String vspId, Version version, String
77       user) {
78
79     mdcDataDebugMessage.debugExitMessage("VSP id, version", vspId, version.toString());
80
81     return vendorSoftwareProductDao.listComponentDependencies(vspId, version);
82   }
83 }