Consolidate PolicyRestAdapter setup
[policy/engine.git] / ONAP-PAP-REST / src / main / java / org / onap / policy / pap / xacml / rest / components / SafePolicyBuilder.java
index ba5b002..6ef7a8f 100644 (file)
@@ -2,7 +2,7 @@
  * ============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.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
+
 package org.onap.policy.pap.xacml.rest.components;
 
 import java.util.List;
@@ -30,57 +31,59 @@ import org.yaml.snakeyaml.Yaml;
 import org.yaml.snakeyaml.constructor.Constructor;
 
 public class SafePolicyBuilder {
-       
-       private SafePolicyBuilder(){
-               //Private Constructor. 
-       }
 
-       public static ControlLoopGuard loadYamlGuard(String specification) {
-               //
-               // Read the yaml into our Java Object
-               //
-               PolicyLogger.info("Requested YAML to convert : " + specification);
-               Yaml yaml = new Yaml(new Constructor(ControlLoopGuard.class));
-               Object obj = yaml.load(specification);
-               return (ControlLoopGuard) obj;
-       }
-       
-       public static String generateXacmlGuard(String xacmlFileContent,Map<String, String> generateMap, List<String> blacklist, List<String> targets) {
-               //Setup default values and Targets. 
-               StringBuilder targetRegex= new StringBuilder(".*|");
-               if(targets!=null && !targets.isEmpty()){
-                       targetRegex = new StringBuilder();
-            for(String t : targets){
-               targetRegex.append(t + "|");
+    private SafePolicyBuilder() {
+        // Private Constructor.
+    }
+
+    public static ControlLoopGuard loadYamlGuard(String specification) {
+        //
+        // Read the yaml into our Java Object
+        //
+        PolicyLogger.info("Requested YAML to convert : " + specification);
+        Yaml yaml = new Yaml(new Constructor(ControlLoopGuard.class));
+        Object obj = yaml.load(specification);
+        return (ControlLoopGuard) obj;
+    }
+
+    public static String generateXacmlGuard(String xacmlFileContent, Map<String, String> generateMap,
+            List<String> blacklist, List<String> targets) {
+        // Setup default values and Targets.
+        StringBuilder targetRegex = new StringBuilder(".*|");
+        if (targets != null && !targets.isEmpty()) {
+            targetRegex = new StringBuilder();
+            for (String t : targets) {
+                targetRegex.append(t + "|");
+            }
+        }
+        if (generateMap.get("clname") == null || generateMap.get("clname").isEmpty()) {
+            generateMap.put("clname", ".*");
+        }
+        generateMap.put("targets", targetRegex.toString().substring(0, targetRegex.length() - 1));
+        // Replace values.
+        for (Map.Entry<String, String> map : generateMap.entrySet()) {
+            Pattern p = Pattern.compile("\\$\\{" + map.getKey() + "\\}");
+            Matcher m = p.matcher(xacmlFileContent);
+            String finalInput = map.getValue();
+            if (finalInput.contains("$")) {
+                finalInput = finalInput.replace("$", "\\$");
+            }
+            xacmlFileContent = m.replaceAll(finalInput);
+        }
+        if (blacklist != null && !blacklist.isEmpty()) {
+            StringBuilder rule = new StringBuilder();
+            for (String blackListName : blacklist) {
+                if (blackListName.contains("$")) {
+                    blackListName = blackListName.replace("$", "\\$");
+                }
+                rule.append("<AttributeValue DataType=\"http://www.w3.org/2001/XMLSchema#string\">" + blackListName
+                        + "</AttributeValue>");
             }
-               }
-               if(generateMap.get("clname")==null|| generateMap.get("clname").isEmpty()){
-                       generateMap.put("clname",".*");
-               }
-               generateMap.put("targets", targetRegex.toString().substring(0, targetRegex.length()-1));
-               // Replace values. 
-               for(Map.Entry<String,String> map: generateMap.entrySet()){
-                       Pattern p = Pattern.compile("\\$\\{" +map.getKey() +"\\}");
-                       Matcher m = p.matcher(xacmlFileContent);
-                       String finalInput = map.getValue();
-                       if(finalInput.contains("$")){
-                               finalInput = finalInput.replace("$", "\\$");
-                       }
-                       xacmlFileContent=m.replaceAll(finalInput);
-               }
-               if(blacklist!=null && !blacklist.isEmpty()){
-                       StringBuilder rule = new StringBuilder();
-                       for(String blackListName : blacklist){
-                               if(blackListName.contains("$")){
-                                       blackListName = blackListName.replace("$", "\\$");
-                               }
-                               rule.append("<AttributeValue DataType=\"http://www.w3.org/2001/XMLSchema#string\">"+blackListName+"</AttributeValue>");
-                       }
-                       Pattern p = Pattern.compile("\\$\\{blackListElement\\}");
-                       Matcher m = p.matcher(xacmlFileContent);
-                       xacmlFileContent=m.replaceAll(rule.toString());
-               }
-               PolicyLogger.info("Generated XACML from the YAML Spec: \n" + xacmlFileContent);
-               return xacmlFileContent;
-       }
+            Pattern p = Pattern.compile("\\$\\{blackListElement\\}");
+            Matcher m = p.matcher(xacmlFileContent);
+            xacmlFileContent = m.replaceAll(rule.toString());
+        }
+        PolicyLogger.info("Generated XACML from the YAML Spec: \n" + xacmlFileContent);
+        return xacmlFileContent;
+    }
 }