X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fbabel%2Fxml%2Fgenerator%2Fmodel%2FResource.java;h=89d02bb393c6e9c19ba163d4727d3cf61c4179a1;hb=b3c57a21bca3898e6a2497e58bb665a90318435a;hp=1b64907a1f30103751ebcb8b62b185113a6e0bd7;hpb=047862bba53addd381fc7c715ac9e3dff76b740d;p=aai%2Fbabel.git diff --git a/src/main/java/org/onap/aai/babel/xml/generator/model/Resource.java b/src/main/java/org/onap/aai/babel/xml/generator/model/Resource.java index 1b64907..89d02bb 100644 --- a/src/main/java/org/onap/aai/babel/xml/generator/model/Resource.java +++ b/src/main/java/org/onap/aai/babel/xml/generator/model/Resource.java @@ -2,8 +2,8 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017-2018 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. @@ -18,10 +18,42 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + 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.XmlArtifactGenerationException; +import org.onap.aai.babel.xml.generator.types.ModelType; + public class Resource extends Model { + private WidgetType type; + private boolean deleteFlag; + private ModelType modelType = ModelType.RESOURCE; + private Map properties = Collections.emptyMap(); + + Widget vserver = null; + boolean addlintf = false; + boolean addvolume = false; + List members; + + 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(); @@ -37,19 +69,107 @@ public class Resource extends Model { } @Override - public boolean addResource(Resource resource) { - return resources.add(resource); + public boolean getDeleteFlag() { + return deleteFlag; + } + + public void setProperties(Map properties) { + this.properties = properties; + } + + public Map getProperties() { + return properties; + } + + public void setModelType(ModelType type) { + this.modelType = type; + } + + public ModelType getModelType() { + return modelType; + } + + public void setMembers(List members) { + this.members = members; + } + + /** + * Adds a Widget. + * + * @param widget + * the widget + * @return the boolean + * @throws XmlArtifactGenerationException + */ + @Override + public boolean addWidget(Widget widget) throws XmlArtifactGenerationException { + if (type == WidgetType.valueOf("VFMODULE")) { + if (widget.memberOf(members)) { + if (vserver == null && widget.getWidgetType() == WidgetType.valueOf("VSERVER")) { + addVserverWidget(widget); + } else if (widget.getWidgetType() == WidgetType.valueOf("LINT")) { + return addLIntfWidget(widget); + } else if (widget.getWidgetType() == WidgetType.valueOf("VOLUME")) { + addVolumeWidget(widget); + return true; + } + if (widget.getWidgetType() != WidgetType.valueOf("OAM_NETWORK")) { + return widgets.add(widget); + } + } + return false; + } else { + return widgets.add(widget); + } } @Override - public boolean addWidget(Widget widget) { - return widgets.add(widget); + public WidgetType getWidgetType() { + return type; } @Override - public Widget.Type getWidgetType() { - org.onap.aai.babel.xml.generator.types.Model model = - this.getClass().getAnnotation(org.onap.aai.babel.xml.generator.types.Model.class); - return model.widget(); + 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 + "]"; + } + + private void addVolumeWidget(Widget widget) { + if (vserver != null) { + vserver.addWidget(widget); + } else { + addvolume = true; + } } + + /** + * @param widget + * @return + */ + private boolean addLIntfWidget(Widget widget) { + if (vserver != null) { + vserver.addWidget(widget); + return true; + } else { + addlintf = true; + return false; + } + } + + private void addVserverWidget(Widget widget) throws XmlArtifactGenerationException { + vserver = widget; + if (addlintf) { + vserver.addWidget(Widget.getWidget(WidgetType.valueOf("LINT"))); + } + if (addvolume) { + vserver.addWidget(Widget.getWidget(WidgetType.valueOf("VOLUME"))); + } + } + }