Create new Resource objects for each new model 21/82921/1
authormark.j.leonard <mark.j.leonard@gmail.com>
Thu, 21 Mar 2019 12:25:13 +0000 (12:25 +0000)
committermark.j.leonard <mark.j.leonard@gmail.com>
Thu, 21 Mar 2019 12:25:13 +0000 (12:25 +0000)
When creating multiple Resources of the same type, ensure that each
Resource has a new Java Object: follow the same pattern as used for
Widget types.

Change-Id: I1e41d3258a3ccdad91448234ae3cf40235d7b210
Issue-ID: AAI-2267
Signed-off-by: mark.j.leonard <mark.j.leonard@gmail.com>
src/main/java/org/onap/aai/babel/xml/generator/data/WidgetConfigurationUtil.java
src/main/java/org/onap/aai/babel/xml/generator/model/Resource.java

index 7683f7c..df5224c 100644 (file)
@@ -31,8 +31,8 @@ import java.util.Optional;
 import java.util.Properties;
 import org.onap.aai.babel.xml.generator.XmlArtifactGenerationException;
 import org.onap.aai.babel.xml.generator.model.Resource;
-import org.onap.aai.babel.xml.generator.model.WidgetType;
 import org.onap.aai.babel.xml.generator.model.Widget;
+import org.onap.aai.babel.xml.generator.model.WidgetType;
 import org.onap.aai.babel.xml.generator.types.ModelType;
 
 public class WidgetConfigurationUtil {
@@ -66,7 +66,12 @@ public class WidgetConfigurationUtil {
     }
 
     public static Optional<Resource> createModelFromType(String typePrefix) {
-        return Optional.ofNullable(typeToResource.get(typePrefix));
+        Optional<Resource> resource = Optional.ofNullable(typeToResource.get(typePrefix));
+        if (resource.isPresent()) {
+            // Make a copy of the Resource found in the mappings table.
+            return Optional.of(new Resource(resource.get()));
+        }
+        return resource;
     }
 
     public static Widget createWidgetFromType(String widgetType) throws XmlArtifactGenerationException {
index f5f7c50..89d02bb 100644 (file)
@@ -44,6 +44,16 @@ public class Resource extends Model {
         this.deleteFlag = deleteFlag;
     }
 
+    /**
+     * Copy Constructor.
+     *
+     * @param baseResource
+     */
+    public Resource(Resource baseResource) {
+        this(baseResource.getWidgetType(), baseResource.getDeleteFlag());
+        setModelType(baseResource.getModelType());
+    }
+
     @Override
     public int hashCode() {
         final String uuid = getModelNameVersionId();
@@ -113,10 +123,12 @@ public class Resource extends Model {
         }
     }
 
+    @Override
     public WidgetType getWidgetType() {
         return type;
     }
 
+    @Override
     public String getModelTypeName() {
         return "resource";
     }