package org.onap.aai.babel.xml.generator.model;
+import com.google.common.collect.ImmutableMap;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
import org.onap.aai.babel.xml.generator.XmlArtifactGenerationException;
-import org.onap.aai.babel.xml.generator.model.Widget.Type;
import org.onap.aai.babel.xml.generator.types.ModelType;
public class Resource extends Model {
-
- private Type type;
+
+ private WidgetType type;
private boolean deleteFlag;
private ModelType modelType = ModelType.RESOURCE;
private Map<String, Object> properties = Collections.emptyMap();
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();
public Map<String, Object> getProperties() {
return properties;
}
-
+
public void setModelType(ModelType type) {
this.modelType = type;
}
-
+
public ModelType getModelType() {
return modelType;
}
-
+
public void setMembers(List<String> members) {
this.members = members;
}
* Adds a Widget.
*
* @param widget
- * the widget
+ * the widget
* @return the boolean
- * @throws XmlArtifactGenerationException
+ * @throws XmlArtifactGenerationException
*/
@Override
public boolean addWidget(Widget widget) throws XmlArtifactGenerationException {
- if (type == Type.VFMODULE) {
+ if (type == WidgetType.valueOf("VFMODULE")) {
if (widget.memberOf(members)) {
- if (vserver == null && widget.getWidgetType() == Type.VSERVER) {
+ if (vserver == null && widget.hasWidgetType("VSERVER")) {
addVserverWidget(widget);
- } else if (widget.getWidgetType() == Type.LINT) {
+ } else if (widget.hasWidgetType("LINT")) {
return addLIntfWidget(widget);
- } else if (widget.getWidgetType() == Type.VOLUME) {
+ } else if (widget.hasWidgetType("VOLUME")) {
addVolumeWidget(widget);
return true;
}
- if (widget.getWidgetType() != Type.OAM_NETWORK) {
+ if (!widget.hasWidgetType("OAM_NETWORK")) {
return widgets.add(widget);
}
}
return widgets.add(widget);
}
}
-
- public Type getWidgetType() {
+
+ @Override
+ public WidgetType getWidgetType() {
return type;
}
-
+
+ @Override
public String getModelTypeName() {
return "resource";
}
@Override
public String toString() {
- return "Resource [widget type=" + getWidgetType() + ", deleteFlag=" + deleteFlag + ", modelType=" + modelType
- + ", properties=" + properties + ", vserver=" + vserver + ", addlintf=" + addlintf + ", addvolume="
- + addvolume + ", members=" + members + "]";
+ return ImmutableMap.<String, String>builder() //
+ .put("Resource", Optional.ofNullable(getModelId()).orElse("null")) //
+ .put("widget type", getWidgetType().toString()) //
+ .put("deleteFlag", Boolean.toString(deleteFlag)) //
+ .put("modelType", modelType.toString()) //
+ .put("properties", properties.toString()) //
+ .put("vserver", Optional.ofNullable(vserver).map(Widget::toString).orElse("null")) //
+ .put("addlintf", Boolean.toString(addlintf)) //
+ .put("addvolume", Boolean.toString(addvolume)) //
+ .put("members", Optional.ofNullable(members).map(List::toString).orElse("null")) //
+ .build().entrySet().stream() //
+ .map(e -> e.getKey() + "=" + e.getValue()) //
+ .collect(Collectors.joining(", "));
}
private void addVolumeWidget(Widget widget) {
private void addVserverWidget(Widget widget) throws XmlArtifactGenerationException {
vserver = widget;
if (addlintf) {
- vserver.addWidget(Widget.getWidget(Type.LINT));
+ vserver.addWidget(Widget.createWidget("LINT"));
}
if (addvolume) {
- vserver.addWidget(Widget.getWidget(Type.VOLUME));
+ vserver.addWidget(Widget.createWidget("VOLUME"));
}
}