re base code
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / be / components / validation / PolicyUtils.java
index c1af083..80747b5 100644 (file)
@@ -1,12 +1,6 @@
 package org.openecomp.sdc.be.components.validation;
 
-import java.util.Collections;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
-
-import org.apache.commons.collections.MapUtils;
-import org.apache.commons.lang3.StringUtils;
+import fj.data.Either;
 import org.openecomp.sdc.be.config.ConfigurationManager;
 import org.openecomp.sdc.be.dao.api.ActionStatus;
 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
@@ -15,18 +9,26 @@ import org.openecomp.sdc.be.model.Component;
 import org.openecomp.sdc.be.model.PolicyDefinition;
 import org.openecomp.sdc.be.model.Resource;
 import org.openecomp.sdc.common.api.Constants;
+import org.openecomp.sdc.common.log.wrappers.Logger;
 import org.openecomp.sdc.common.util.ValidationUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
-import fj.data.Either;
+import java.util.Collections;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
+
+import static org.apache.commons.collections.MapUtils.isEmpty;
+import static org.apache.commons.collections.MapUtils.isNotEmpty;
+import static org.apache.commons.lang3.StringUtils.isEmpty;
+import static org.apache.commons.lang3.StringUtils.isNotEmpty;
+import static org.openecomp.sdc.common.api.Constants.GROUP_POLICY_NAME_DELIMETER;
 
 /**
  * Provides specific functionality for policy
  */
 public class PolicyUtils {
 
-    private static final Logger log = LoggerFactory.getLogger(PolicyUtils.class);
+    private static final Logger log = Logger.getLogger(PolicyUtils.class);
 
     private PolicyUtils() {
         // No instances allowed
@@ -40,7 +42,7 @@ public class PolicyUtils {
      */
     public static int getNextPolicyCounter(Map<String, PolicyDefinition> policies) {
         int nextCounter = 0;
-        if (MapUtils.isNotEmpty(policies)) {
+        if (isNotEmpty(policies)) {
             int nextCounterFromIds = policies.values()
                                              .stream()
                                              .map(p -> extractNextPolicyCounterFromUniqueId(p.getUniqueId()))
@@ -72,13 +74,12 @@ public class PolicyUtils {
     /**
      * Retrieves the set of the excluded policy types for the specified component
      *
-     * @param  the component
      * @return the set of the policies
      */
     public static Set<String> getExcludedPolicyTypesByComponent(Component component) {
-        if (MapUtils.isEmpty(ConfigurationManager.getConfigurationManager()
-                                                 .getConfiguration()
-                                                 .getExcludedPolicyTypesMapping())) {
+        if (isEmpty(ConfigurationManager.getConfigurationManager()
+                                        .getConfiguration()
+                                        .getExcludedPolicyTypesMapping())) {
             return Collections.emptySet();
         }
         if (component.getComponentType() == ComponentTypeEnum.SERVICE) {
@@ -95,7 +96,7 @@ public class PolicyUtils {
 
     private static int extractNextPolicyCounterFromUniqueId(String uniqueId) {
         int counter = 0;
-        if (StringUtils.isNotEmpty(uniqueId)) {
+        if (isNotEmpty(uniqueId)) {
             counter = extractNextPolicyCounter(uniqueId, uniqueId.lastIndexOf(Constants.POLICY_UID_POSTFIX));
         }
         return counter;
@@ -103,7 +104,7 @@ public class PolicyUtils {
 
     private static int extractNextPolicyCounterFromName(String policyName) {
         int counter = 0;
-        if (StringUtils.isNotEmpty(policyName)) {
+        if (isNotEmpty(policyName)) {
             counter = extractNextPolicyCounter(policyName, policyName.length());
         }
         return counter;
@@ -112,11 +113,12 @@ public class PolicyUtils {
     private static int extractNextPolicyCounter(String policyName, int endIndex) {
         int counter = 0;
         try {
-            counter = Integer.valueOf(policyName.substring(policyName.lastIndexOf(Constants.GROUP_POLICY_NAME_DELIMETER) + Constants.GROUP_POLICY_NAME_DELIMETER
-                    .length(), endIndex)) + 1;
+            int beginIndex = policyName.lastIndexOf(GROUP_POLICY_NAME_DELIMETER) + GROUP_POLICY_NAME_DELIMETER.length();
+            String counterStr = policyName.substring(beginIndex, endIndex);
+            counter = Integer.valueOf(counterStr) + 1;
         }
         catch (NumberFormatException | IndexOutOfBoundsException e) {
-            log.error("The exception {} occurred upon extraction counter from the srting value {}. ", e, policyName);
+            log.error("#extractNextPolicyCounter - An error occurred when attempting to extract counter from policy name [{}]. ", policyName, e);
         }
         return counter;
     }
@@ -126,85 +128,52 @@ public class PolicyUtils {
     }
 
     private static void validateImmutablePolicyFields(PolicyDefinition receivedPolicy, PolicyDefinition validPolicy) {
-        boolean isUpdatedField = isUpdatedField(receivedPolicy.getUniqueId(), validPolicy.getUniqueId());
-        if (isUpdatedField) {
-            logImmutableFieldUpdateWarning(receivedPolicy.getUniqueId(), validPolicy.getUniqueId(), JsonPresentationFields.UNIQUE_ID);
-        }
-        isUpdatedField = isUpdatedField(receivedPolicy.getComponentName(), validPolicy.getComponentName());
-        if (isUpdatedField) {
-            logImmutableFieldUpdateWarning(receivedPolicy.getComponentName(), validPolicy.getComponentName(), JsonPresentationFields.CI_COMPONENT_NAME);
-        }
-        isUpdatedField = isUpdatedField(receivedPolicy.getDerivedFrom(), validPolicy.getDerivedFrom());
-        if (isUpdatedField) {
-            logImmutableFieldUpdateWarning(receivedPolicy.getDerivedFrom(), validPolicy.getDerivedFrom(), JsonPresentationFields.DERIVED_FROM);
-        }
-        isUpdatedField = isUpdatedField(receivedPolicy.getDescription(), validPolicy.getDescription());
-        if (isUpdatedField) {
-            logImmutableFieldUpdateWarning(receivedPolicy.getDescription(), validPolicy.getDescription(), JsonPresentationFields.DESCRIPTION);
-        }
-        isUpdatedField = isUpdatedField(receivedPolicy.getInvariantName(), validPolicy.getInvariantName());
-        if (isUpdatedField) {
-            logImmutableFieldUpdateWarning(receivedPolicy.getInvariantName(), validPolicy.getInvariantName(), JsonPresentationFields.CI_INVARIANT_NAME);
-        }
-        isUpdatedField = isUpdatedField(receivedPolicy.getInvariantUUID(), validPolicy.getInvariantUUID());
-        if (isUpdatedField) {
-            logImmutableFieldUpdateWarning(receivedPolicy.getInvariantUUID(), validPolicy.getInvariantUUID(), JsonPresentationFields.INVARIANT_UUID);
-        }
-        isUpdatedField = isUpdatedField(receivedPolicy.getPolicyTypeName(), validPolicy.getPolicyTypeName());
-        if (isUpdatedField) {
-            logImmutableFieldUpdateWarning(receivedPolicy.getPolicyTypeName(), validPolicy.getPolicyTypeName(), JsonPresentationFields.TYPE);
-        }
-        isUpdatedField = isUpdatedField(receivedPolicy.getPolicyTypeUid(), validPolicy.getPolicyTypeUid());
-        if (isUpdatedField) {
-            logImmutableFieldUpdateWarning(receivedPolicy.getPolicyTypeUid(), validPolicy.getPolicyTypeUid(), JsonPresentationFields.TYPE_UNIQUE_ID);
-        }
-        isUpdatedField = isUpdatedField(receivedPolicy.getPolicyUUID(), validPolicy.getPolicyUUID());
-        if (isUpdatedField) {
-            logImmutableFieldUpdateWarning(receivedPolicy.getPolicyUUID(), validPolicy.getPolicyUUID(), JsonPresentationFields.UUID);
-        }
-        isUpdatedField = isUpdatedField(receivedPolicy.getVersion(), validPolicy.getVersion());
-        if (isUpdatedField) {
-            logImmutableFieldUpdateWarning(receivedPolicy.getVersion(), validPolicy.getVersion(), JsonPresentationFields.VERSION);
-        }
-        isUpdatedField = isUpdatedField(receivedPolicy.getIsFromCsar().toString(), validPolicy.getIsFromCsar()
-                                                                                              .toString());
-        if (isUpdatedField) {
-            logImmutableFieldUpdateWarning(receivedPolicy.getIsFromCsar().toString(), validPolicy.getIsFromCsar()
-                                                                                                 .toString(), JsonPresentationFields.IS_FROM_CSAR);
-        }
+        logImmutableFieldUpdateWarning(receivedPolicy.getUniqueId(), validPolicy.getUniqueId(), JsonPresentationFields.UNIQUE_ID);
+        logImmutableFieldUpdateWarning(receivedPolicy.getComponentName(), validPolicy.getComponentName(), JsonPresentationFields.CI_COMPONENT_NAME);
+        logImmutableFieldUpdateWarning(receivedPolicy.getDerivedFrom(), validPolicy.getDerivedFrom(), JsonPresentationFields.DERIVED_FROM);
+        logImmutableFieldUpdateWarning(receivedPolicy.getDescription(), validPolicy.getDescription(), JsonPresentationFields.DESCRIPTION);
+        logImmutableFieldUpdateWarning(receivedPolicy.getInvariantName(), validPolicy.getInvariantName(), JsonPresentationFields.CI_INVARIANT_NAME);
+        logImmutableFieldUpdateWarning(receivedPolicy.getInvariantUUID(), validPolicy.getInvariantUUID(), JsonPresentationFields.INVARIANT_UUID);
+        logImmutableFieldUpdateWarning(receivedPolicy.getPolicyTypeName(), validPolicy.getPolicyTypeName(), JsonPresentationFields.TYPE);
+        logImmutableFieldUpdateWarning(receivedPolicy.getPolicyTypeUid(), validPolicy.getPolicyTypeUid(), JsonPresentationFields.TYPE_UNIQUE_ID);
+        logImmutableFieldUpdateWarning(receivedPolicy.getPolicyUUID(), validPolicy.getPolicyUUID(), JsonPresentationFields.UUID);
+        logImmutableFieldUpdateWarning(receivedPolicy.getVersion(), validPolicy.getVersion(), JsonPresentationFields.VERSION);
+        logImmutableFieldUpdateWarning(receivedPolicy.getIsFromCsar().toString(), validPolicy.getIsFromCsar().toString(), JsonPresentationFields.IS_FROM_CSAR);
     }
 
     private static boolean isUpdatedField(String oldField, String newField) {
         boolean isUpdatedField = false;
-        if (StringUtils.isEmpty(oldField) && StringUtils.isNotEmpty(newField)) {
+        if (isEmpty(oldField) && isNotEmpty(newField)) {
             isUpdatedField = true;
         }
-        if (StringUtils.isNotEmpty(oldField) && StringUtils.isNotEmpty(newField) && !oldField.equals(newField)) {
+        else if (isNotEmpty(oldField) && isNotEmpty(newField) && !oldField.equals(newField)) {
             isUpdatedField = true;
         }
         return isUpdatedField;
     }
 
     private static void logImmutableFieldUpdateWarning(String oldValue, String newValue, JsonPresentationFields field) {
-        log.warn("Update of the field {} of a policy not allowed. The change will be ignored. The old value is {} , the new value is {}. ", field, oldValue, newValue);
+        if (isUpdatedField(oldValue, newValue)) {
+            log.warn("#logImmutableFieldUpdateWarning - Update of the field {} of a policy not allowed. The change will be ignored. The old value is {} , the new value is {}. ", field, oldValue, newValue);
+        }
     }
 
     private static Either<PolicyDefinition, ActionStatus> validateUpdatePolicyName(PolicyDefinition receivedPolicy, PolicyDefinition validPolicy, Map<String, PolicyDefinition> policies) {
         Either<PolicyDefinition, ActionStatus> result = null;
         Optional<PolicyDefinition> sameNamePolicy = Optional.empty();
-        if (StringUtils.isEmpty(receivedPolicy.getName()) || !ValidationUtils.POLICY_NAME_PATTERN.matcher(receivedPolicy
+        if (isEmpty(receivedPolicy.getName()) || !ValidationUtils.POLICY_NAME_PATTERN.matcher(receivedPolicy
                 .getName()).matches()) {
-            log.error("Failed to validate the name {} of the policy {}. ", receivedPolicy.getName(), receivedPolicy.getUniqueId());
+            log.error("#validateUpdatePolicyName - Failed to validate the name {} of the policy {}. ", receivedPolicy.getName(), receivedPolicy.getUniqueId());
             result = Either.right(ActionStatus.INVALID_POLICY_NAME);
         }
-        if (result == null && MapUtils.isNotEmpty(policies)) {
+        if (result == null && isNotEmpty(policies)) {
             sameNamePolicy = policies.values()
                                      .stream()
                                      .filter(p -> p.getName().equals(receivedPolicy.getName()))
                                      .findFirst();
         }
         if (sameNamePolicy.isPresent()) {
-            log.error("Failed to validate the name {} of the policy {}. The policy {} with the same name already exists. ", receivedPolicy
+            log.error("#validateUpdatePolicyName - Failed to validate the name {} of the policy {}. The policy {} with the same name already exists. ", receivedPolicy
                     .getName(), receivedPolicy.getUniqueId(), sameNamePolicy.get().getUniqueId());
             result = Either.right(ActionStatus.POLICY_NAME_ALREADY_EXIST);
         }