Add hasWidgetType() helper method
[aai/babel.git] / src / main / java / org / onap / aai / babel / xml / generator / model / Resource.java
index d6a9405..77679ac 100644 (file)
@@ -2,8 +2,8 @@
  * ============LICENSE_START=======================================================
  * org.onap.aai
  * ================================================================================
- * Copyright © 2017-2019 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017-2019 European Software Marketing Ltd.
+ * Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (c) 2017-2019 European Software Marketing Ltd.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,13 +24,14 @@ package org.onap.aai.babel.xml.generator.model;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-import org.onap.aai.babel.xml.generator.model.Widget.Type;
+import org.onap.aai.babel.xml.generator.XmlArtifactGenerationException;
+import org.onap.aai.babel.xml.generator.types.ModelType;
 
 public class Resource extends Model {
 
-    private Type type;
+    private WidgetType type;
     private boolean deleteFlag;
-    private boolean isResource = true;
+    private ModelType modelType = ModelType.RESOURCE;
     private Map<String, Object> properties = Collections.emptyMap();
 
     Widget vserver = null;
@@ -38,11 +39,21 @@ public class Resource extends Model {
     boolean addvolume = false;
     List<String> members;
 
-    public Resource(Type type, boolean deleteFlag) {
+    public Resource(WidgetType type, boolean deleteFlag) {
         this.type = type;
         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();
@@ -57,65 +68,52 @@ public class Resource extends Model {
         return false;
     }
 
+    @Override
     public boolean getDeleteFlag() {
         return deleteFlag;
     }
 
-    public String getWidgetInvariantId() {
-        return Widget.getWidget(getWidgetType()).getWidgetId();
-    }
-
-    public String getWidgetId() {
-        return Widget.getWidget(getWidgetType()).getId();
-    }
-
     public void setProperties(Map<String, Object> properties) {
         this.properties = properties;
     }
 
-    @Override
     public Map<String, Object> getProperties() {
         return properties;
     }
 
-    public void setIsResource(boolean isResource) {
-        this.isResource = isResource;
+    public void setModelType(ModelType type) {
+        this.modelType = type;
     }
 
-    @Override
-    public boolean isResource() {
-        return isResource;
+    public ModelType getModelType() {
+        return modelType;
     }
 
     public void setMembers(List<String> members) {
         this.members = members;
     }
 
-    @Override
-    public boolean addResource(Resource resource) {
-        return resources.add(resource);
-    }
-
     /**
      * Adds a Widget.
      *
      * @param widget
      *            the widget
      * @return the boolean
+     * @throws XmlArtifactGenerationException
      */
     @Override
-    public boolean addWidget(Widget widget) {
-        if (type == Type.VFMODULE) {
+    public boolean addWidget(Widget widget) throws XmlArtifactGenerationException {
+        if (type == WidgetType.valueOf("VFMODULE")) {
             if (widget.memberOf(members)) {
-                if (vserver == null && widget instanceof VServerWidget) {
+                if (vserver == null && widget.hasWidgetType("VSERVER")) {
                     addVserverWidget(widget);
-                } else if (widget instanceof LIntfWidget) {
+                } else if (widget.hasWidgetType("LINT")) {
                     return addLIntfWidget(widget);
-                } else if (widget instanceof VolumeWidget) {
+                } else if (widget.hasWidgetType("VOLUME")) {
                     addVolumeWidget(widget);
                     return true;
                 }
-                if (!(widget instanceof OamNetwork)) {
+                if (!widget.hasWidgetType("OAM_NETWORK")) {
                     return widgets.add(widget);
                 }
             }
@@ -125,13 +123,21 @@ public class Resource extends Model {
         }
     }
 
-    public Type getWidgetType() {
+    @Override
+    public WidgetType getWidgetType() {
         return type;
     }
 
+    @Override
+    public String getModelTypeName() {
+        return "resource";
+    }
+
     @Override
     public String toString() {
-        return "Widget type " + getWidgetType() + ", isResource=" + isResource() + ", deleteFlag=" + deleteFlag;
+        return "Resource [widget type=" + getWidgetType() + ", deleteFlag=" + deleteFlag + ", modelType=" + modelType
+                + ", properties=" + properties + ", vserver=" + vserver + ", addlintf=" + addlintf + ", addvolume="
+                + addvolume + ", members=" + members + "]";
     }
 
     private void addVolumeWidget(Widget widget) {
@@ -156,13 +162,13 @@ public class Resource extends Model {
         }
     }
 
-    private void addVserverWidget(Widget widget) {
+    private void addVserverWidget(Widget widget) throws XmlArtifactGenerationException {
         vserver = widget;
         if (addlintf) {
-            vserver.addWidget(new LIntfWidget());
+            vserver.addWidget(Widget.getWidget(WidgetType.valueOf("LINT")));
         }
         if (addvolume) {
-            vserver.addWidget(new VolumeWidget());
+            vserver.addWidget(Widget.getWidget(WidgetType.valueOf("VOLUME")));
         }
     }