Consolidate PolicyRestAdapter setup
[policy/engine.git] / ONAP-PAP-REST / src / main / java / org / onap / policy / pap / xacml / rest / components / ConfigPolicy.java
index 0cd2638..1cab716 100644 (file)
@@ -2,8 +2,9 @@
  * ============LICENSE_START=======================================================
  * ONAP-PAP-REST
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved.
  * Modified Copyright (C) 2018 Samsung Electronics Co., Ltd.
+ * Modified Copyright (C) 2019 Bell Canada.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,6 +22,9 @@
 
 package org.onap.policy.pap.xacml.rest.components;
 
+import com.att.research.xacml.api.pap.PAPException;
+import com.att.research.xacml.std.IdentifierImpl;
+
 import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileWriter;
@@ -32,17 +36,6 @@ import java.nio.file.Paths;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.commons.io.FilenameUtils;
-import org.onap.policy.common.logging.eelf.MessageCodes;
-import org.onap.policy.common.logging.eelf.PolicyLogger;
-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.utils.PolicyUtils;
-
-import com.att.research.xacml.api.pap.PAPException;
-import com.att.research.xacml.std.IdentifierImpl;
-
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionType;
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionsType;
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
@@ -57,6 +50,14 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
 
+import org.apache.commons.io.FilenameUtils;
+import org.onap.policy.common.logging.eelf.MessageCodes;
+import org.onap.policy.common.logging.eelf.PolicyLogger;
+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.utils.PolicyUtils;
+
 public class ConfigPolicy extends Policy {
 
     /**
@@ -92,34 +93,38 @@ public class ConfigPolicy extends Policy {
         }
     }
 
-
     // Here we are adding the extension for the configurations file based on the
     // config type selection for saving.
     private String getConfigFile(String filename) {
+        filename = removeExtentsion(filename);
+        String id = policyAdapter.getConfigType();
+
+        if (id == null) {
+            return filename;
+        }
+        switch (id.toUpperCase()) {
+            case JSON_CONFIG:
+                return filename + ".json";
+            case XML_CONFIG:
+                return filename + ".xml";
+            case PROPERTIES_CONFIG:
+                return filename + ".properties";
+            case OTHER_CONFIG:
+                return filename + ".txt";
+            default:
+                return filename;
+
+        }
+    }
+
+    private String removeExtentsion(String filename) {
         filename = FilenameUtils.removeExtension(filename);
         if (filename.endsWith(".xml")) {
             filename = filename.substring(0, filename.length() - 4);
         }
-        String id = policyAdapter.getConfigType();
-
-        if (id != null) {
-            if (id.equalsIgnoreCase(JSON_CONFIG)) {
-                filename = filename + ".json";
-            }
-            if (id.equalsIgnoreCase(XML_CONFIG)) {
-                filename = filename + ".xml";
-            }
-            if (id.equalsIgnoreCase(PROPERTIES_CONFIG)) {
-                filename = filename + ".properties";
-            }
-            if (id.equalsIgnoreCase(OTHER_CONFIG)) {
-                filename = filename + ".txt";
-            }
-        }
         return filename;
     }
 
-
     // Validations for Config form
     /*
      * FORM VALIDATION WILL BE DONE BY THE PAP-ADMIN before creating JSON object...
@@ -134,24 +139,30 @@ public class ConfigPolicy extends Policy {
          */
         configBodyData = policyAdapter.getConfigBodyData();
         String id = policyAdapter.getConfigType();
-        if (id != null) {
-            if (id.equals(JSON_CONFIG)) {
+        if (id == null) {
+            return isValidForm;
+        }
+        switch (id) {
+            case JSON_CONFIG:
                 if (!PolicyUtils.isJSONValid(configBodyData)) {
                     isValidForm = false;
                 }
-            } else if (id.equals(XML_CONFIG)) {
+                break;
+            case XML_CONFIG:
                 if (!PolicyUtils.isXMLValid(configBodyData)) {
                     isValidForm = false;
                 }
-            } else if (id.equals(PROPERTIES_CONFIG)) {
+                break;
+            case PROPERTIES_CONFIG:
                 if (!PolicyUtils.isPropValid(configBodyData) || configBodyData.equals("")) {
                     isValidForm = false;
                 }
-            } else if (id.equals(OTHER_CONFIG)) {
+                break;
+            case OTHER_CONFIG:
                 if (configBodyData.equals("")) {
                     isValidForm = false;
                 }
-            }
+                break;
         }
         return isValidForm;
 
@@ -167,7 +178,7 @@ public class ConfigPolicy extends Policy {
         }
 
         if (!isPreparedToSave()) {
-            //Prep and configure the policy for saving
+            // Prep and configure the policy for saving
             prepareToSave();
         }
 
@@ -178,8 +189,8 @@ public class ConfigPolicy extends Policy {
         return successMap;
     }
 
-    //This is the method for preparing the policy for saving.  We have broken it out
-    //separately because the fully configured policy is used for multiple things
+    // This is the method for preparing the policy for saving. We have broken it out
+    // separately because the fully configured policy is used for multiple things
     @Override
     public boolean prepareToSave() throws PAPException {
 
@@ -427,7 +438,7 @@ public class ConfigPolicy extends Policy {
             }
         }
 
-        //Risk Attributes
+        // Risk Attributes
         AttributeAssignmentExpressionType assignment8 = new AttributeAssignmentExpressionType();
         assignment8.setAttributeId("RiskType");
         assignment8.setCategory(CATEGORY_RESOURCE);