* ============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.
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 org.onap.aai.babel.xml.generator.model.Widget.Type;
+import java.util.Optional;
+import java.util.stream.Collectors;
+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;
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();
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);
}
}
}
}
- 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 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) {
+ private void addVserverWidget(Widget widget) throws XmlArtifactGenerationException {
vserver = widget;
if (addlintf) {
- vserver.addWidget(new LIntfWidget());
+ vserver.addWidget(Widget.createWidget("LINT"));
}
if (addvolume) {
- vserver.addWidget(new VolumeWidget());
+ vserver.addWidget(Widget.createWidget("VOLUME"));
}
}