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<>();
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() {
*/
@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