Modify the template model
[clamp.git] / src / main / java / org / onap / clamp / policy / Policy.java
index fc097bd..c656820 100644 (file)
 package org.onap.clamp.policy;
 
 import com.google.gson.JsonObject;
+import com.google.gson.annotations.Expose;
 
 import java.io.UnsupportedEncodingException;
 
-public interface Policy {
+import javax.persistence.Column;
+import javax.persistence.FetchType;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.MappedSuperclass;
 
-    String getName();
+import org.hibernate.annotations.Type;
+import org.hibernate.annotations.TypeDef;
+import org.hibernate.annotations.TypeDefs;
+import org.onap.clamp.dao.model.jsontype.StringJsonUserType;
+import org.onap.clamp.loop.common.AuditEntity;
+import org.onap.clamp.loop.template.LoopElementModel;
 
-    JsonObject getJsonRepresentation();
+@MappedSuperclass
+@TypeDefs({ @TypeDef(name = "json", typeClass = StringJsonUserType.class) })
+public abstract class Policy extends AuditEntity {
 
-    String createPolicyPayload() throws UnsupportedEncodingException;
+    @Expose
+    @Type(type = "json")
+    @Column(columnDefinition = "json", name = "json_representation", nullable = false)
+    private JsonObject jsonRepresentation;
+
+    @Expose
+    @Type(type = "json")
+    @Column(columnDefinition = "json", name = "configurations_json")
+    private JsonObject configurationsJson;
+
+    @Expose
+    @ManyToOne(fetch = FetchType.EAGER)
+    @JoinColumn(name = "loop_element_model_id")
+    private LoopElementModel loopElementModel;
+
+    @Expose
+    @Column(name = "pdp_group")
+    private String pdpGroup;
+
+    public abstract String createPolicyPayload() throws UnsupportedEncodingException;
+
+    /**
+     * Name getter.
+     * 
+     * @return the name
+     */
+    public abstract String getName();
+
+    /**
+     * Name setter.
+     * 
+     */
+    public abstract void setName(String name);
+
+    /**
+     * jsonRepresentation getter.
+     * 
+     * @return the jsonRepresentation
+     */
+    public JsonObject getJsonRepresentation() {
+        return jsonRepresentation;
+    }
+
+    /**
+     * jsonRepresentation setter.
+     * 
+     * @param jsonRepresentation The jsonRepresentation to set
+     */
+    public void setJsonRepresentation(JsonObject jsonRepresentation) {
+        this.jsonRepresentation = jsonRepresentation;
+    }
+
+    /**
+     * configurationsJson getter.
+     * 
+     * @return The configurationsJson
+     */
+    public JsonObject getConfigurationsJson() {
+        return configurationsJson;
+    }
+
+    /**
+     * configurationsJson setter.
+     * 
+     * @param configurationsJson the configurationsJson to set
+     */
+    public void setConfigurationsJson(JsonObject configurationsJson) {
+        this.configurationsJson = configurationsJson;
+    }
+
+    /**
+     * loopElementModel getter.
+     * 
+     * @return the loopElementModel
+     */
+    public LoopElementModel getLoopElementModel() {
+        return loopElementModel;
+    }
+
+    /**
+     * loopElementModel setter.
+     * 
+     * @param loopElementModel the loopElementModel to set
+     */
+    public void setLoopElementModel(LoopElementModel loopElementModel) {
+        this.loopElementModel = loopElementModel;
+    }
+
+    /**
+     * pdpGroup getter.
+     * 
+     * @return the pdpGroup
+     */
+    public String getPdpGroup() {
+        return pdpGroup;
+    }
+
+    /**
+     * pdpGroup setter.
+     * 
+     * @param pdpGroup the pdpGroup to set
+     */
+    public void setPdpGroup(String pdpGroup) {
+        this.pdpGroup = pdpGroup;
+    }
 
     /**
      * Generate the policy name.
      *
-     * @param policyType
-     *        The policy type
-     * @param serviceName
-     *        The service name
-     * @param serviceVersion
-     *        The service version
-     * @param resourceName
-     *        The resource name
-     * @param blueprintFilename
-     *        The blueprint file name
+     * @param policyType        The policy type
+     * @param serviceName       The service name
+     * @param serviceVersion    The service version
+     * @param resourceName      The resource name
+     * @param blueprintFilename The blueprint file name
      * @return The generated policy name
      */
-    static String generatePolicyName(String policyType, String serviceName, String serviceVersion, String resourceName,
-        String blueprintFilename) {
+    public static String generatePolicyName(String policyType, String serviceName, String serviceVersion,
+            String resourceName, String blueprintFilename) {
         StringBuilder buffer = new StringBuilder(policyType).append("_").append(serviceName).append("_v")
-            .append(serviceVersion).append("_").append(resourceName).append("_")
-            .append(blueprintFilename.replaceAll(".yaml", ""));
+                .append(serviceVersion).append("_").append(resourceName).append("_")
+                .append(blueprintFilename.replaceAll(".yaml", ""));
         return buffer.toString().replace('.', '_').replaceAll(" ", "");
     }