PDP Group support
[clamp.git] / src / main / java / org / onap / clamp / loop / Loop.java
index a24d344..83f938d 100644 (file)
@@ -23,6 +23,8 @@
 
 package org.onap.clamp.loop;
 
+import com.google.gson.GsonBuilder;
+import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
 import com.google.gson.annotations.Expose;
 
@@ -257,6 +259,30 @@ public class Loop implements Serializable {
         return buffer.toString().replace('.', '_').replaceAll(" ", "");
     }
 
+    public String createPoliciesPayloadPdpGroup() {
+        JsonObject jsonObject = new JsonObject();
+        JsonArray jsonArray = new JsonArray();
+        jsonObject.add("policies", jsonArray);
+
+        for (OperationalPolicy opPolicy : this.getOperationalPolicies()) {
+            JsonObject policyNode = new JsonObject();
+            jsonArray.add(policyNode);
+            policyNode.addProperty("policy-id", opPolicy.getName());
+
+            for (String guardName : opPolicy.createGuardPolicyPayloads().keySet()) {
+                JsonObject guardPolicyNode = new JsonObject();
+                jsonArray.add(guardPolicyNode);
+                guardPolicyNode.addProperty("policy-id", guardName);
+            }
+        }
+        for (MicroServicePolicy microServicePolicy : this.getMicroServicePolicies()) {
+            JsonObject policyNode = new JsonObject();
+            jsonArray.add(policyNode);
+            policyNode.addProperty("policy-id", microServicePolicy.getName());
+        }
+        return new GsonBuilder().setPrettyPrinting().create().toJson(jsonObject);
+    }
+
     @Override
     public int hashCode() {
         final int prime = 31;