JUnit/SONAR/Checkstyle in ONAP-REST
[policy/engine.git] / POLICY-SDK-APP / src / main / java / org / onap / policy / controller / CreateBRMSParamController.java
index 33b7803..143d675 100644 (file)
@@ -26,7 +26,6 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
-import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -63,8 +62,9 @@ import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
 import org.onap.policy.rest.adapter.PolicyRestAdapter;
 import org.onap.policy.rest.dao.CommonClassDao;
-import org.onap.policy.rest.jpa.BRMSParamTemplate;
+import org.onap.policy.rest.jpa.BrmsParamTemplate;
 import org.onap.policy.rest.jpa.PolicyEntity;
+import org.onap.policy.utils.PolicyUtils;
 import org.onap.policy.xacml.api.XACMLErrorConstants;
 import org.onap.portalsdk.core.controller.RestrictedBaseController;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -104,6 +104,12 @@ public class CreateBRMSParamController extends RestrictedBaseController {
     private static String brmsTemplateVlaue = "<$%BRMSParamTemplate=";
     private static String string = "String";
 
+    /**
+     * getBRMSParamPolicyRuleData.
+     *
+     * @param request HttpServletRequest
+     * @param response HttpServletResponse
+     */
     @RequestMapping(value = {"/policyController/getBRMSTemplateData.htm"}, method = {RequestMethod.POST})
     public void getBRMSParamPolicyRuleData(HttpServletRequest request, HttpServletResponse response) {
         try {
@@ -117,20 +123,17 @@ public class CreateBRMSParamController extends RestrictedBaseController {
             response.setContentType(PolicyController.getContenttype());
             request.setCharacterEncoding(PolicyController.getCharacterencoding());
 
-            PrintWriter out = response.getWriter();
-            String responseString = mapper.writeValueAsString(dynamicLayoutMap);
-            JSONObject j = new JSONObject("{policyData: " + responseString + "}");
-            out.write(j.toString());
+            response.getWriter().write(new JSONObject("{policyData: " + mapper.writeValueAsString(dynamicLayoutMap)
+                + "}").toString());
         } catch (Exception e) {
             policyLogger.error("Exception Occured while getting BRMS Rule data", e);
         }
     }
 
     private String findRule(String ruleTemplate) {
-        List<Object> datas = commonClassDao.getDataById(BRMSParamTemplate.class, "ruleName", ruleTemplate);
+        List<Object> datas = commonClassDao.getDataById(BrmsParamTemplate.class, "ruleName", ruleTemplate);
         if (CollectionUtils.isNotEmpty(datas)) {
-            BRMSParamTemplate bRMSParamTemplate = (BRMSParamTemplate) datas.get(0);
-            return bRMSParamTemplate.getRule();
+            return ((BrmsParamTemplate) datas.get(0)).getRule();
         }
         return null;
     }
@@ -242,55 +245,60 @@ public class CreateBRMSParamController extends RestrictedBaseController {
         dynamicLayoutMap.put(caption, type);
     }
 
-    /*
+    /**
+     * prePopulateBRMSParamPolicyData.
      * When the User Click Edit or View Policy the following method will get invoked for setting the data to
      * PolicyRestAdapter.
-     * Which is used to bind the data in GUI
+     * Which is used to bind the data in GUI.
+     *
+     * @param policyAdapter PolicyRestAdapter
+     * @param entity PolicyEntity
      */
     public void prePopulateBRMSParamPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
         dynamicLayoutMap = new HashMap<>();
-        if (policyAdapter.getPolicyData() instanceof PolicyType) {
-            PolicyType policy = (PolicyType) policyAdapter.getPolicyData();
-            policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
-            // policy name value is the policy name without any prefix and
-            // Extensions.
-            String policyNameValue =
-                    policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("BRMS_Param_") + 11);
-            if (policyLogger.isDebugEnabled()) {
-                policyLogger
-                        .debug("Prepopulating form data for BRMS RAW Policy selected:" + policyAdapter.getPolicyName());
-            }
-            policyAdapter.setPolicyName(policyNameValue);
-            String description;
-            try {
-                description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
-            } catch (Exception e) {
-                policyLogger.info("Error getting description: " + e);
-                description = policy.getDescription();
-            }
-            policyAdapter.setPolicyDescription(description);
-            setDataAdapterFromAdviceExpressions(policy, policyAdapter);
+        if (! (policyAdapter.getPolicyData() instanceof PolicyType)) {
+            return;
+        }
+        PolicyType policy = (PolicyType) policyAdapter.getPolicyData();
+        policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
+        // policy name value is the policy name without any prefix and
+        // Extensions.
+        String policyNameValue =
+                policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("BRMS_Param_") + 11);
+        if (policyLogger.isDebugEnabled()) {
+            policyLogger
+                    .debug("Prepopulating form data for BRMS RAW Policy selected:" + policyAdapter.getPolicyName());
+        }
+        policyAdapter.setPolicyName(policyNameValue);
+        String description;
+        try {
+            description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
+        } catch (Exception e) {
+            policyLogger.info("Error getting description: " + e);
+            description = policy.getDescription();
+        }
+        policyAdapter.setPolicyDescription(description);
+        setDataAdapterFromAdviceExpressions(policy, policyAdapter);
 
-            // Generate Param UI
-            try {
-                paramUIGenerate(policyAdapter, entity);
-            } catch (Exception e) {
-                policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e.getMessage() + e);
-            }
+        // Generate Param UI
+        try {
+            paramUiGenerate(policyAdapter, entity);
+        } catch (Exception e) {
+            policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e.getMessage() + e);
+        }
 
-            // Get the target data under policy.
-            policyAdapter.setDynamicLayoutMap(dynamicLayoutMap);
-            if (policyAdapter.getDynamicLayoutMap().size() > 0) {
-                LinkedHashMap<String, String> drlRule = policyAdapter.getDynamicLayoutMap().keySet().stream()
-                        .collect(Collectors.toMap(String::toString,
-                                keyValue -> policyAdapter.getDynamicLayoutMap().get(keyValue), (a, b) -> b,
-                                LinkedHashMap::new));
-                policyAdapter.setRuleData(drlRule);
-            }
-            TargetType target = policy.getTarget();
-            if (target != null) {
-                setDataToAdapterFromTarget(target, policyAdapter);
-            }
+        // Get the target data under policy.
+        policyAdapter.setDynamicLayoutMap(dynamicLayoutMap);
+        if (policyAdapter.getDynamicLayoutMap().size() > 0) {
+            LinkedHashMap<String, String> drlRule = policyAdapter.getDynamicLayoutMap().keySet().stream()
+                    .collect(Collectors.toMap(String::toString,
+                        keyValue -> policyAdapter.getDynamicLayoutMap().get(keyValue), (a, b) -> b,
+                            LinkedHashMap::new));
+            policyAdapter.setRuleData(drlRule);
+        }
+        TargetType target = policy.getTarget();
+        if (target != null) {
+            setDataToAdapterFromTarget(target, policyAdapter);
         }
     }
 
@@ -328,11 +336,10 @@ public class CreateBRMSParamController extends RestrictedBaseController {
 
     private void setDataToAdapterFromTarget(TargetType target, PolicyRestAdapter policyAdapter) {
         // Under target we have AnyOFType
-        List<AnyOfType> anyOfList = target.getAnyOf();
-        if (anyOfList == null) {
+        if (target.getAnyOf() == null) {
             return;
         }
-        anyOfList.stream().map(AnyOfType::getAllOf).filter(Objects::nonNull).flatMap(Collection::stream)
+        target.getAnyOf().stream().map(AnyOfType::getAllOf).filter(Objects::nonNull).flatMap(Collection::stream)
                 .forEach(allOf -> setDataToAdapterFromMatchList(allOf.getMatch(), policyAdapter));
     }
 
@@ -349,25 +356,12 @@ public class CreateBRMSParamController extends RestrictedBaseController {
             String value = (String) attributeValue.getContent().get(0);
             AttributeDesignatorType designator = match.getAttributeDesignator();
             String attributeId = designator.getAttributeId();
-            if ("RiskType".equals(attributeId)) {
-                policyAdapter.setRiskType(value);
-            }
-            if ("RiskLevel".equals(attributeId)) {
-                policyAdapter.setRiskLevel(value);
-            }
-            if ("guard".equals(attributeId)) {
-                policyAdapter.setGuard(value);
-            }
-            if ("TTLDate".equals(attributeId) && !value.contains("NA")) {
-                PolicyController controller = new PolicyController();
-                String newDate = controller.convertDate(value);
-                policyAdapter.setTtlDate(newDate);
-            }
+            policyAdapter.setupUsingAttribute(attributeId, value);
         }
     }
 
     // This method generates the UI from rule configuration
-    private void paramUIGenerate(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
+    private void paramUiGenerate(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
         String data = entity.getConfigurationData().getConfigBody();
         if (data == null) {
             return;
@@ -473,7 +467,12 @@ public class CreateBRMSParamController extends RestrictedBaseController {
         return line;
     }
 
-    // set View Rule
+    /**
+     * setViewRule.
+     *
+     * @param request HttpServletRequest
+     * @param response HttpServletResponse
+     */
     @SuppressWarnings("unchecked")
     @RequestMapping(value = {"/policyController/ViewBRMSParamPolicyRule.htm"}, method = {RequestMethod.POST})
     public void setViewRule(HttpServletRequest request, HttpServletResponse response) {
@@ -492,7 +491,8 @@ public class CreateBRMSParamController extends RestrictedBaseController {
 
             String body = findRule(policyData.getRuleName()) + "\n";
             StringBuilder generatedMetadata = new StringBuilder().append(
-                    "/* Autogenerated Code Please Don't change/remove this comment section. This is for the UI purpose. \n\t ")
+                    "/* Autogenerated Code Please Don't change/remove this comment section. "
+                            + "This is for the UI purpose. \n\t ")
                     .append(brmsTemplateVlaue).append(policyData.getRuleName()).append("%$> \n */ \n");
 
             if (policyData.getDynamicLayoutMap().size() > 0) {
@@ -517,26 +517,22 @@ public class CreateBRMSParamController extends RestrictedBaseController {
             // Finding all the keys in the Map data-structure.
             Set<String> keySet = copyMap.keySet();
             Iterator<String> iterator = keySet.iterator();
-            Pattern p;
-            Matcher m;
             while (iterator.hasNext()) {
                 // Converting the first character of the key into a lower case.
                 String input = iterator.next();
                 String output = Character.toLowerCase(input.charAt(0)) + (input.length() > 1 ? input.substring(1) : "");
                 // Searching for a pattern in the String using the key.
-                p = Pattern.compile("\\$\\{" + output + "\\}");
-                m = p.matcher(body);
+                Pattern pattern = Pattern.compile("\\$\\{" + output + "\\}");
+                Matcher matcher = pattern.matcher(body);
                 // Replacing the value with the inputs provided by the user in the editor.
-                body = m.replaceAll(copyMap.get(input));
+                body = matcher.replaceAll(copyMap.get(input));
             }
-            response.setCharacterEncoding("UTF-8");
-            response.setContentType("application / json");
-            request.setCharacterEncoding("UTF-8");
-
-            PrintWriter out = response.getWriter();
-            String responseString = mapper.writeValueAsString(body);
-            JSONObject j = new JSONObject("{policyData: " + responseString + "}");
-            out.write(j.toString());
+            response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+            response.setContentType(PolicyUtils.APPLICATION_JSON);
+            request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+
+            response.getWriter().write(new JSONObject("{policyData: " + mapper.writeValueAsString(body)
+                + "}").toString());
         } catch (Exception e) {
             policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
         }