Changed identifiers to concept identifiers
[policy/models.git] / models-tosca / src / main / java / org / onap / policy / models / tosca / authorative / concepts / ToscaPolicy.java
index e861606..491b478 100644 (file)
@@ -3,6 +3,7 @@
  * ONAP Policy Model
  * ================================================================================
  * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019-2021 Nordix Foundation.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 package org.onap.policy.models.tosca.authorative.concepts;
 
+import com.google.gson.annotations.SerializedName;
+import io.swagger.annotations.ApiModelProperty;
 import java.util.LinkedHashMap;
 import java.util.Map;
+import java.util.Map.Entry;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 import lombok.NonNull;
+import lombok.ToString;
 
 /**
  * Class to represent TOSCA policy matching input/output from/to client.
@@ -34,16 +40,15 @@ import lombok.NonNull;
  * @author Chenfei Gao (cgao@research.att.com)
  */
 @Data
+@EqualsAndHashCode(callSuper = true)
 @NoArgsConstructor
-public class ToscaPolicy {
-
+@ToString(callSuper = true)
+public class ToscaPolicy extends ToscaEntity {
     private String type;
 
-    private String version;
-
-    private String description;
-
-    private Map<String, String> metadata;
+    @ApiModelProperty(name = "type_version")
+    @SerializedName("type_version")
+    private String typeVersion;
 
     private Map<String, Object> properties;
 
@@ -53,10 +58,34 @@ public class ToscaPolicy {
      * @param copyObject the obejct to copy from.
      */
     public ToscaPolicy(@NonNull ToscaPolicy copyObject) {
+        super(copyObject);
+
         this.type = copyObject.type;
-        this.version = copyObject.version;
-        this.description = copyObject.description;
-        this.metadata = (metadata != null ? new LinkedHashMap<>(copyObject.metadata) : null);
-        this.properties = (properties != null ? new LinkedHashMap<>(copyObject.properties) : null);
+        this.typeVersion = copyObject.typeVersion;
+
+        if (copyObject.properties != null) {
+            properties = new LinkedHashMap<>();
+            for (final Entry<String, Object> propertyEntry : copyObject.properties.entrySet()) {
+                properties.put(propertyEntry.getKey(), propertyEntry.getValue());
+            }
+        }
+    }
+
+    /**
+     * Gets the identifier for this policy.
+     *
+     * @return this policy's identifier
+     */
+    public ToscaConceptIdentifier getIdentifier() {
+        return new ToscaConceptIdentifier(getName(), getVersion());
+    }
+
+    /**
+     * Gets the type identifier for this policy.
+     *
+     * @return this policy's type identifier
+     */
+    public ToscaConceptIdentifier getTypeIdentifier() {
+        return new ToscaConceptIdentifier(getType(), getTypeVersion());
     }
 }