package org.onap.clamp.loop.template;
+import com.google.gson.JsonObject;
import com.google.gson.annotations.Expose;
-
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
-
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
+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.util.SemanticVersioning;
@Entity
@Table(name = "policy_models")
@IdClass(PolicyModelId.class)
+@TypeDefs({@TypeDef(name = "json", typeClass = StringJsonUserType.class)})
public class PolicyModel extends AuditEntity implements Serializable, Comparable<PolicyModel> {
/**
*/
@Id
@Expose
- @Column(name = "version")
+ @Column(name = "version",nullable = false)
private String version;
@Column(columnDefinition = "MEDIUMTEXT", name = "policy_tosca")
@ManyToMany(mappedBy = "policyModels", fetch = FetchType.EAGER)
private Set<LoopElementModel> usedByElementModels = new HashSet<>();
+ @Type(type = "json")
+ @Column(columnDefinition = "json", name = "policy_pdp_group")
+ private JsonObject policyPdpGroup;
+
/**
* usedByElementModels getter.
- *
+ *
* @return the usedByElementModels
*/
public Set<LoopElementModel> getUsedByElementModels() {
return usedByElementModels;
}
+ /**
+ * policyPdpGroup getter.
+ *
+ * @return the policyPdpGroup
+ */
+ public JsonObject getPolicyPdpGroup() {
+ return policyPdpGroup;
+ }
+
+ /**
+ * policyPdpGroup setter.
+ *
+ * @param policyPdpGroup the policyPdpGroup to set
+ */
+ public void setPolicyPdpGroup(JsonObject policyPdpGroup) {
+ this.policyPdpGroup = policyPdpGroup;
+ }
+
/**
* policyModelTosca getter.
- *
+ *
* @return the policyModelTosca
*/
public String getPolicyModelTosca() {
/**
* policyModelTosca setter.
- *
+ *
* @param policyModelTosca the policyModelTosca to set
*/
public void setPolicyModelTosca(String policyModelTosca) {
/**
* policyModelType getter.
- *
+ *
* @return the modelType
*/
public String getPolicyModelType() {
/**
* policyModelType setter.
- *
+ *
* @param modelType the modelType to set
*/
public void setPolicyModelType(String modelType) {
/**
* version getter.
- *
+ *
* @return the version
*/
public String getVersion() {
/**
* version setter.
- *
+ *
* @param version the version to set
*/
public void setVersion(String version) {
/**
* policyAcronym getter.
- *
+ *
* @return the policyAcronym value
*/
public String getPolicyAcronym() {
/**
* policyAcronym setter.
- *
+ *
* @param policyAcronym The policyAcronym to set
*/
public void setPolicyAcronym(String policyAcronym) {
/**
* Constructor.
- *
- * @param policyType The policyType (referenced in the blueprint
+ *
+ * @param policyType The policyType (referenced in the blueprint
* @param policyModelTosca The policy tosca model in yaml
- * @param version the version like 1.0.0
- * @param policyAcronym Subtype for policy if it exists (could be used by UI)
+ * @param version the version like 1.0.0
+ * @param policyAcronym Subtype for policy if it exists (could be used by UI)
*/
- public PolicyModel(String policyType, String policyModelTosca, String version, String policyAcronym) {
+ public PolicyModel(String policyType, String policyModelTosca, String version,
+ String policyAcronym) {
this.policyModelType = policyType;
this.policyModelTosca = policyModelTosca;
this.version = version;
- this.policyAcronym = policyAcronym;
+ this.policyAcronym=policyAcronym;
+ if (this.policyAcronym == null) {
+ this.policyAcronym = createDefaultPolicyAcronym(policyType);
+ }
+ }
+
+ /**
+ * Constructor with acronym generated by default from policyType.
+ *
+ * @param policyType The policyType (referenced in the blueprint
+ * @param policyModelTosca The policy tosca model in yaml
+ * @param version the version like 1.0.0
+ */
+ public PolicyModel(String policyType, String policyModelTosca, String version) {
+ this(policyType, policyModelTosca, version, null);
+ }
+
+ public static String createDefaultPolicyAcronym(String policyType) {
+ String[] policyNameArray = policyType.split("\\.");
+ return policyNameArray[policyNameArray.length - 1];
}
@Override