Remove annotations in models
[policy/models.git] / models-tosca / src / main / java / org / onap / policy / models / tosca / authorative / concepts / ToscaTopologyTemplate.java
index a243b16..45b4b20 100644 (file)
@@ -3,7 +3,7 @@
  * ONAP Policy Model
  * ================================================================================
  * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
- * Modifications Copyright (C) 2020 Nordix Foundation.
+ * Modifications Copyright (C) 2020-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.ArrayList;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
 
 /**
  * Class to represent TOSCA topology template matching input/output from/to client.
@@ -35,12 +38,12 @@ import lombok.Data;
  * @author Chenfei Gao (cgao@research.att.com)
  */
 @Data
+@NoArgsConstructor
 public class ToscaTopologyTemplate {
     private String description;
 
     private Map<String, ToscaParameter> inputs;
 
-    @ApiModelProperty(name = "node_templates")
     @SerializedName("node_templates")
     private Map<String, ToscaNodeTemplate> nodeTemplates;
 
@@ -49,4 +52,19 @@ public class ToscaTopologyTemplate {
     public Map<ToscaEntityKey, ToscaPolicy> getPoliciesAsMap() {
         return ToscaEntity.getEntityListMapAsMap(policies);
     }
+
+    /**
+     * Copy constructor.
+     *
+     * @param copyObject the obejct to copy from.
+     */
+    public ToscaTopologyTemplate(@NonNull ToscaTopologyTemplate copyObject) {
+        this.description = copyObject.description;
+
+        // @formatter:off
+        this.inputs        = (copyObject.inputs        != null ? new LinkedHashMap<>(copyObject.inputs)        : null);
+        this.nodeTemplates = (copyObject.nodeTemplates != null ? new LinkedHashMap<>(copyObject.nodeTemplates) : null);
+        this.policies      = (copyObject.policies      != null ? new ArrayList<>(copyObject.policies)          : null);
+        // @formatter:on
+    }
 }