1 package org.openecomp.sdc.be.components.impl;
4 import org.apache.commons.lang.StringUtils;
5 import org.openecomp.sdc.be.components.validation.UserValidations;
6 import org.openecomp.sdc.be.config.ConfigurationManager;
7 import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
8 import org.openecomp.sdc.be.impl.ComponentsUtils;
9 import org.openecomp.sdc.be.model.PolicyTypeDefinition;
10 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
11 import org.openecomp.sdc.be.model.operations.impl.PolicyTypeOperation;
12 import org.openecomp.sdc.common.log.wrappers.Logger;
13 import org.openecomp.sdc.exception.ResponseFormat;
14 import org.springframework.stereotype.Component;
15 import org.springframework.transaction.annotation.Transactional;
17 import java.util.List;
21 import static java.util.Collections.emptySet;
24 public class PolicyTypeBusinessLogic {
26 private static final Logger log = Logger.getLogger(PolicyTypeBusinessLogic.class);
27 private PolicyTypeOperation policyTypeOperation;
28 private TitanDao titanDao;
29 private ComponentsUtils componentsUtils;
30 private UserValidations userValidations;
32 public PolicyTypeBusinessLogic(PolicyTypeOperation policyTypeOperation, TitanDao titanDao, ComponentsUtils componentsUtils, UserValidations userValidations) {
33 this.policyTypeOperation = policyTypeOperation;
34 this.titanDao = titanDao;
35 this.componentsUtils = componentsUtils;
36 this.userValidations = userValidations;
40 public List<PolicyTypeDefinition> getAllPolicyTypes(String userId, String internalComponentType) {
41 Set<String> excludedPolicyTypes = getExcludedPolicyTypes(internalComponentType);
42 userValidations.validateUserExists(userId, "get policy types", true);
43 return getPolicyTypes(excludedPolicyTypes);
46 public Set<String> getExcludedPolicyTypes(String internalComponentType) {
47 if (StringUtils.isEmpty(internalComponentType)) {
50 Map<String, Set<String>> excludedPolicyTypesMapping = ConfigurationManager.getConfigurationManager().getConfiguration().getExcludedPolicyTypesMapping();
51 Set<String> excludedTypes = excludedPolicyTypesMapping.get(internalComponentType);
52 return excludedTypes == null ? emptySet() : excludedTypes;
55 private List<PolicyTypeDefinition> getPolicyTypes(Set<String> excludedTypes) {
56 return policyTypeOperation.getAllPolicyTypes(excludedTypes);
59 private Either<List<PolicyTypeDefinition>, ResponseFormat> convertToResponseFormatOrNotFoundErrorToEmptyList(StorageOperationStatus err) {
60 log.debug("error when trying to fetch policy types: {}", err);
61 return componentsUtils.convertToResponseFormatOrNotFoundErrorToEmptyList(err);