[AAI] Release 1.13.1 docker artifact of babel
[aai/babel.git] / src / main / java / org / onap / aai / babel / xml / generator / model / Widget.java
index 732ec4d..8f71f2b 100644 (file)
@@ -24,18 +24,15 @@ package org.onap.aai.babel.xml.generator.model;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
-import java.util.Properties;
 import java.util.Set;
 import org.onap.aai.babel.xml.generator.XmlArtifactGenerationException;
-import org.onap.aai.babel.xml.generator.data.ArtifactType;
 import org.onap.aai.babel.xml.generator.data.WidgetConfigurationUtil;
 import org.onap.aai.babel.xml.generator.error.IllegalAccessException;
 import org.onap.aai.babel.xml.generator.types.ModelType;
 
 public class Widget extends Model {
 
-    public static final String GENERATOR_AAI_CONFIGLPROP_NOT_FOUND =
-            "Cannot generate artifacts. Widget configuration not found for %s";
+    public static final String GENERATOR_AAI_CONFIGLPROP_NOT_FOUND = "Cannot generate artifacts. Widget configuration not found for %s";
 
     private Set<String> keys = new HashSet<>();
 
@@ -43,53 +40,66 @@ public class Widget extends Model {
     protected WidgetType type;
     protected boolean deleteFlag = false;
 
-    public Widget(WidgetType widgetType, String name, boolean deleteFlag) {
+    private String modelInvariantId;
+    private String modelVersionId;
+
+    public Widget(WidgetType widgetType, String name, boolean deleteFlag, String modelInvariantId, String modelVersionId) {
         type = widgetType;
         this.name = name;
         this.deleteFlag = deleteFlag;
+        this.modelInvariantId = modelInvariantId;
+        this.modelVersionId = modelVersionId;
     }
 
     /**
      * Copy Constructor.
-     * 
+     *
      * @param baseWidget
      * @throws XmlArtifactGenerationException
+     *             if there is no widget mapping defined for any of the VSERVER child types
      */
     public Widget(Widget baseWidget) throws XmlArtifactGenerationException {
-        this(baseWidget.getWidgetType(), baseWidget.getName(), baseWidget.getDeleteFlag());
-        if (type == WidgetType.valueOf("VSERVER")) {
-            widgets.add(getWidget(WidgetType.valueOf("FLAVOR")));
-            widgets.add(getWidget(WidgetType.valueOf("IMAGE")));
-            widgets.add(getWidget(WidgetType.valueOf("TENANT")));
-            widgets.add(getWidget(WidgetType.valueOf("VFC")));
+        this(baseWidget.getWidgetType(), baseWidget.getName(), baseWidget.getDeleteFlag(), baseWidget.getWidgetId(), baseWidget.getId());
+        if (this.hasWidgetType("VSERVER")) {
+            widgets.add(createWidget("FLAVOR"));
+            widgets.add(createWidget("IMAGE"));
+            widgets.add(createWidget("TENANT"));
+            widgets.add(createWidget("VFC"));
         }
     }
 
     /**
-     * Gets widget.
+     * Creates a new widget of the specified type.
      *
-     * @param typeString
-     * 
+     * @param type
+     *            String value of the Widget Type
      * @return a new widget of the specified type
      * @throws XmlArtifactGenerationException
-     *             if there is no configuration defined for the specified type
+     *             if the configured widget mappings do not support the specified type
      */
-    public static Widget getWidget(WidgetType type) throws XmlArtifactGenerationException {
-        Widget widget = WidgetConfigurationUtil.createWidgetFromType(type.toString());
+    public static Widget createWidget(String type) throws XmlArtifactGenerationException {
+        Widget widget = WidgetConfigurationUtil.createWidgetFromType(type);
         if (widget == null) {
             throw new XmlArtifactGenerationException("No widget type is defined for " + type);
         }
         return widget;
     }
 
+    /**
+     * Creates a new widget of the specified type.
+     *
+     * @param type
+     *            the Widget Type
+     * @return a new widget of the specified type
+     * @throws XmlArtifactGenerationException
+     *             if there is no configuration defined for the specified type
+     */
+    public static Widget createWidget(WidgetType type) throws XmlArtifactGenerationException {
+        return createWidget(type.toString());
+    }
+
     public String getId() {
-        String id = WidgetConfigurationUtil.getConfig()
-                .getProperty(ArtifactType.AAI.name() + ".model-version-id." + getName());
-        if (id == null) {
-            throw new IllegalArgumentException(String.format(GENERATOR_AAI_CONFIGLPROP_NOT_FOUND,
-                    ArtifactType.AAI.name() + ".model-version-id." + getName()));
-        }
-        return id;
+        return modelVersionId;
     }
 
     public ModelType getType() {
@@ -107,13 +117,7 @@ public class Widget extends Model {
      */
     @Override
     public String getWidgetId() {
-        Properties properties = WidgetConfigurationUtil.getConfig();
-        String id = properties.getProperty(ArtifactType.AAI.name() + ".model-invariant-id." + getName());
-        if (id == null) {
-            throw new IllegalArgumentException(String.format(GENERATOR_AAI_CONFIGLPROP_NOT_FOUND,
-                    ArtifactType.AAI.name() + ".model-invariant-id." + getName()));
-        }
-        return id;
+        return modelInvariantId;
     }
 
     @Override