Support occurrences on node templates
[sdc.git] / common-be / src / main / java / org / openecomp / sdc / be / datatypes / elements / ComponentInstanceDataDefinition.java
index b6f9b82..ce8dda0 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.openecomp.sdc.be.datatypes.elements;
 
-import java.io.Serializable;
-
+import org.apache.commons.collections.CollectionUtils;
+import org.openecomp.sdc.be.datatypes.enums.CreatedFrom;
+import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields;
 import org.openecomp.sdc.be.datatypes.enums.OriginTypeEnum;
 import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
-
-public class ComponentInstanceDataDefinition extends ToscaDataDefinition implements Serializable {
-
-       /**
-        * 
-        */
-       
-       private static final long serialVersionUID = 7215033872921497743L;
-
-       private String icon;
-       
-       private String uniqueId;
-
-       private String name;
-       
-       private String normalizedName;
-
-       private String componentUid;
-
-       private Long creationTime;
-
-       private Long modificationTime;
-
-       private String description;
-
-       private String posX;
-
-       private String posY;
-       private Integer propertyValueCounter = 1;
-       private Integer attributeValueCounter;
-       private Integer inputValueCounter = 1;
-       private OriginTypeEnum originType;
-       private String customizationUUID;
-       private String componentName;
-       private String componentVersion;
-       private String toscaComponentName;
-       private String invariantName;
-       
-       public ComponentInstanceDataDefinition() {
-               super();
-       }
-
-       public ComponentInstanceDataDefinition(ComponentInstanceDataDefinition dataDefinition) {
-               this.icon = dataDefinition.icon;
-               this.uniqueId = dataDefinition.uniqueId;
-               this.name = dataDefinition.name;
-               this.componentUid = dataDefinition.componentUid;
-               this.creationTime = dataDefinition.creationTime;
-               this.modificationTime = dataDefinition.modificationTime;
-               this.description = dataDefinition.description;
-               this.posX = dataDefinition.posX;
-               this.posY = dataDefinition.posY;
-               this.propertyValueCounter = dataDefinition.propertyValueCounter;
-               this.normalizedName = dataDefinition.normalizedName;
-               this.originType = dataDefinition.originType;
-               this.customizationUUID = dataDefinition.customizationUUID;
-               this.componentName = dataDefinition.componentName;
-               this.componentVersion = dataDefinition.componentVersion;
-               this.toscaComponentName = dataDefinition.toscaComponentName;
-               this.invariantName = dataDefinition.invariantName;
-       }
-       
-       public String getIcon() {
-               return icon;
-       }
-
-       public void setIcon(String icon) {
-               this.icon = icon;
-       }
-       public String getUniqueId() {
-               return uniqueId;
-       }
-
-       public void setUniqueId(String uniqueId) {
-               this.uniqueId = uniqueId;
-       }
-
-       public Long getCreationTime() {
-               return creationTime;
-       }
-
-       public void setCreationTime(Long creationTime) {
-               this.creationTime = creationTime;
-       }
-
-       public Long getModificationTime() {
-               return modificationTime;
-       }
-
-       public void setModificationTime(Long modificationTime) {
-               this.modificationTime = modificationTime;
-       }
-
-       public String getDescription() {
-               return description;
-       }
-
-       public void setDescription(String description) {
-               this.description = description;
-       }
-
-       public String getPosX() {
-               return posX;
-       }
-
-       public void setPosX(String posX) {
-               this.posX = posX;
-       }
-
-       public String getPosY() {
-               return posY;
-       }
-
-       public void setPosY(String posY) {
-               this.posY = posY;
-       }
-
-       public String getComponentUid() {
-               return componentUid;
-       }
-
-       public void setComponentUid(String resourceUid) {
-               this.componentUid = resourceUid;
-       }
-
-       public String getName() {
-               return name;
-       }
-
-       public void setName(String name) {
-               if(invariantName == null){
-                       invariantName = name;
+import org.openecomp.sdc.common.util.ValidationUtils;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+public class ComponentInstanceDataDefinition extends ToscaDataDefinition {
+
+    public ComponentInstanceDataDefinition() {
+        setPropertyValueCounter(1);
+        setAttributeValueCounter(1);
+        setInputValueCounter(1);
+        setIsProxy(false);
+    }
+
+    public ComponentInstanceDataDefinition(ComponentInstanceDataDefinition dataDefinition) {
+        setIcon(dataDefinition.getIcon());
+        setUniqueId(dataDefinition.getUniqueId());
+        setName(dataDefinition.getName());
+        setComponentUid(dataDefinition.getComponentUid());
+        setCreationTime(dataDefinition.getCreationTime());
+        setModificationTime(dataDefinition.getModificationTime());
+        setDescription(dataDefinition.getDescription());
+        setPosX(dataDefinition.getPosX());
+        setPosY(dataDefinition.getPosY());
+        setMinOccurrences(dataDefinition.getMinOccurrences());
+        setMaxOccurrences(dataDefinition.getMaxOccurrences());
+        setPropertyValueCounter(dataDefinition.getPropertyValueCounter());
+        setNormalizedName(dataDefinition.getNormalizedName());
+        setOriginType(dataDefinition.getOriginType());
+        setCustomizationUUID(dataDefinition.getCustomizationUUID());
+        setComponentName(dataDefinition.getComponentName());
+        setComponentVersion(dataDefinition.getComponentVersion());
+        setToscaComponentName(dataDefinition.getToscaComponentName());
+        setInvariantName(dataDefinition.getInvariantName());
+        setSourceModelInvariant(dataDefinition.getSourceModelInvariant());
+        setSourceModelName(dataDefinition.getSourceModelName());
+        setSourceModelUuid(dataDefinition.getSourceModelUuid());
+        setSourceModelUid(dataDefinition.getSourceModelUid());
+        setIsProxy(dataDefinition.getIsProxy());
+        setDirectives(dataDefinition.getDirectives());
+        setOriginArchived(dataDefinition.isOriginArchived());
+        setToscaArtifacts(dataDefinition.getToscaArtifacts());
+    }
+
+    public String getIcon() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.CI_ICON);
+    }
+
+    public void setIcon(String icon) {
+        setToscaPresentationValue(JsonPresentationFields.CI_ICON, icon);
+    }
+
+    public String getUniqueId() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.UNIQUE_ID);
+    }
+
+    public void setUniqueId(String uniqueId) {
+        setToscaPresentationValue(JsonPresentationFields.UNIQUE_ID, uniqueId);
+    }
+
+    public Long getCreationTime() {
+        return (Long) getToscaPresentationValue(JsonPresentationFields.CREATION_TIME);
+    }
+
+    public void setCreationTime(Long creationTime) {
+        setToscaPresentationValue(JsonPresentationFields.CREATION_TIME, creationTime);
+    }
+
+    public Long getModificationTime() {
+        return (Long) getToscaPresentationValue(JsonPresentationFields.MODIFICATION_TIME);
+    }
+
+    public void setModificationTime(Long modificationTime) {
+        setToscaPresentationValue(JsonPresentationFields.MODIFICATION_TIME, modificationTime);
+       }
+
+       public CreatedFrom getCreatedFrom() {
+               String createdFrom = (String) getToscaPresentationValue(JsonPresentationFields.CREATED_FROM);
+               return Objects.nonNull(createdFrom) ? CreatedFrom.valueOf(createdFrom) : null;
+       }
+
+       public void setCreatedFrom(CreatedFrom createdFrom) {
+               if (Objects.nonNull(createdFrom)){
+                       setToscaPresentationValue(JsonPresentationFields.CREATED_FROM, createdFrom.name());
                }
-               this.name = name;
-       }
-       
-       public String getInvariantName() {
-               return invariantName;
-       }
-
-       public void setInvariantName(String invariantName) {
-               this.invariantName = invariantName;
-       }
-
-       public Integer getPropertyValueCounter() {
-               return propertyValueCounter;
-       }
-
-       public void setPropertyValueCounter(Integer propertyValueCounter) {
-               this.propertyValueCounter = propertyValueCounter;
-       }
-
-       public String getNormalizedName() {
-               return normalizedName;
-       }
-
-       public void setNormalizedName(String normalizedName) {
-               this.normalizedName = normalizedName;
-       }
-
-       public OriginTypeEnum getOriginType() {
-               return originType;
-       }
-
-       public void setOriginType(OriginTypeEnum originType) {
-               this.originType = originType;
-       }
-
-       public Integer getAttributeValueCounter() {
-               return attributeValueCounter;
-       }
-
-       public void setAttributeValueCounter(Integer attributeValueCounter) {
-               this.attributeValueCounter = attributeValueCounter;
-       }
-
-       public Integer getInputValueCounter() {
-               return inputValueCounter;
-       }
-
-       public void setInputValueCounter(Integer inputValueCounter) {
-               this.inputValueCounter = inputValueCounter;
-       }
-
-       public String getCustomizationUUID() {
-               return customizationUUID;
-       }
-
-       public void setCustomizationUUID(String customizationUUID) {
-               this.customizationUUID = customizationUUID;
-       }
-
-       public String getComponentName() {
-               return componentName;
-       }
-
-       public void setComponentName(String resourceName) {
-               this.componentName = resourceName;
-       }
-
-       public String getComponentVersion() {
-               return componentVersion;
-       }
-
-       public String getToscaComponentName() {
-               return toscaComponentName;
-       }
-
-       public void setToscaComponentName(String toscaComponentName) {
-               this.toscaComponentName = toscaComponentName;
-       }
-
-       public void setComponentVersion(String resourceVersion) {
-               this.componentVersion = resourceVersion;
-       }
-
-       @Override
-       public String toString() {
-               return "ComponentInstanceDataDefinition [icon=" + icon + ", uniqueId=" + uniqueId + ", name=" + name + ", normalizedName=" + normalizedName + ", componentUid=" + componentUid + ", creationTime=" + creationTime + ", modificationTime="
-                               + modificationTime + ", description=" + description + ", posX=" + posX + ", posY=" + posY + ", propertyValueCounter=" + propertyValueCounter + ", attributeValueCounter=" + attributeValueCounter + ", inputValueCounter="
-                               + inputValueCounter + ", originType=" + originType + ", customizationUUID=" + customizationUUID + ", componentName=" + componentName + ", componentVersion=" + componentVersion + ", toscaComponentName=" + toscaComponentName + "]";
-       }
+    }
+
+    public String getDescription() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.DESCRIPTION);
+    }
+
+    public void setDescription(String description) {
+        setToscaPresentationValue(JsonPresentationFields.DESCRIPTION, description);
+    }
+
+    public String getPosX() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.CI_POS_X);
+    }
+
+    public void setPosX(String posX) {
+        setToscaPresentationValue(JsonPresentationFields.CI_POS_X, posX);
+    }
+
+    public String getPosY() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.CI_POS_Y);
+    }
+
+    public void setPosY(String posY) {
+        setToscaPresentationValue(JsonPresentationFields.CI_POS_Y, posY);
+    }
+
+    public String getMinOccurrences() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.CI_MIN_OCCURRENCES);
+    }
+
+    public void setMinOccurrences(String minOccurrences) {
+        setToscaPresentationValue(JsonPresentationFields.CI_MIN_OCCURRENCES, minOccurrences);
+    }
+
+    public String getMaxOccurrences() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.CI_MAX_OCCURRENCES);
+    }
+
+    public void setMaxOccurrences(String maxOccurrences) {
+        setToscaPresentationValue(JsonPresentationFields.CI_MAX_OCCURRENCES, maxOccurrences);
+    }
+
+    public String getComponentUid() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.CI_COMPONENT_UID);
+    }
+
+    public void setComponentUid(String resourceUid) {
+        setToscaPresentationValue(JsonPresentationFields.CI_COMPONENT_UID, resourceUid);
+    }
+
+    public String getName() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.NAME);
+    }
+
+    public void setName(String name) {
+        if (this.getInvariantName() == null && name != null) {
+            this.setInvariantName(ValidationUtils.normalizeComponentInstanceName(name));
+        }
+        setToscaPresentationValue(JsonPresentationFields.NAME, name);
+    }
+
+    public String getInvariantName() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.CI_INVARIANT_NAME);
+    }
+
+    public void setInvariantName(String invariantName) {
+        setToscaPresentationValue(JsonPresentationFields.CI_INVARIANT_NAME, invariantName);
+    }
+
+    public Integer getPropertyValueCounter() {
+        return (Integer) getToscaPresentationValue(JsonPresentationFields.CI_PROP_VALUE_COUNTER);
+    }
+
+    public void setPropertyValueCounter(Integer propertyValueCounter) {
+        setToscaPresentationValue(JsonPresentationFields.CI_PROP_VALUE_COUNTER, propertyValueCounter);
+    }
+
+    public String getNormalizedName() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.NORMALIZED_NAME);
+    }
+
+    public void setNormalizedName(String normalizedName) {
+        setToscaPresentationValue(JsonPresentationFields.NORMALIZED_NAME, normalizedName);
+    }
+
+    public OriginTypeEnum getOriginType() {
+        OriginTypeEnum originType = null;
+        String origType = (String) getToscaPresentationValue(JsonPresentationFields.CI_ORIGIN_TYPE);
+        if (origType != null && !origType.isEmpty()) {
+
+            originType = OriginTypeEnum.findByValue(origType);
+        }
+        return originType;
+    }
+
+    public void setOriginType(OriginTypeEnum originType) {
+        if (originType != null) {
+            setToscaPresentationValue(JsonPresentationFields.CI_ORIGIN_TYPE, originType.getValue());
+        }
+    }
+
+    public Integer getAttributeValueCounter() {
+        return (Integer) getToscaPresentationValue(JsonPresentationFields.CI_ATTR_VALUE_COUNTER);
+    }
+
+    public void setAttributeValueCounter(Integer attributeValueCounter) {
+        setToscaPresentationValue(JsonPresentationFields.CI_ATTR_VALUE_COUNTER, attributeValueCounter);
+    }
+
+    public Integer getInputValueCounter() {
+        return (Integer) getToscaPresentationValue(JsonPresentationFields.CI_INPUT_VALUE_COUNTER);
+    }
+
+    public void setInputValueCounter(Integer inputValueCounter) {
+        setToscaPresentationValue(JsonPresentationFields.CI_INPUT_VALUE_COUNTER, inputValueCounter);
+    }
+
+    public String getCustomizationUUID() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.CUSTOMIZATION_UUID);
+    }
+
+    public void setCustomizationUUID(String customizationUUID) {
+        setToscaPresentationValue(JsonPresentationFields.CUSTOMIZATION_UUID, customizationUUID);
+    }
+
+    public String getComponentName() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.CI_COMPONENT_NAME);
+    }
+
+    public void setComponentName(String resourceName) {
+        setToscaPresentationValue(JsonPresentationFields.CI_COMPONENT_NAME, resourceName);
+    }
+
+    public String getComponentVersion() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.CI_COMPONENT_VERSION);
+    }
+
+    public String getToscaComponentName() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.CI_TOSCA_COMPONENT_NAME);
+    }
+
+    public void setToscaComponentName(String toscaComponentName) {
+        setToscaPresentationValue(JsonPresentationFields.CI_TOSCA_COMPONENT_NAME, toscaComponentName);
+    }
+
+    public void setComponentVersion(String resourceVersion) {
+        setToscaPresentationValue(JsonPresentationFields.CI_COMPONENT_VERSION, resourceVersion);
+    }
+
+    public void setSourceModelUuid(String targetModelUuid) {
+        setToscaPresentationValue(JsonPresentationFields.CI_SOURCE_MODEL_UUID, targetModelUuid);
+    }
+
+    public void setSourceModelUid(String targetModelUid) {
+        setToscaPresentationValue(JsonPresentationFields.CI_SOURCE_MODEL_UID, targetModelUid);
+    }
+
+    public void setSourceModelName(String targetModelName) {
+        setToscaPresentationValue(JsonPresentationFields.CI_SOURCE_MODEL_NAME, targetModelName);
+    }
+
+    public void setSourceModelInvariant(String targetModelInvariant) {
+        setToscaPresentationValue(JsonPresentationFields.CI_SOURCE_MODEL_INVARIANT, targetModelInvariant);
+    }
+
+    public String getSourceModelUuid() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.CI_SOURCE_MODEL_UUID);
+    }
+
+    public String getSourceModelUid() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.CI_SOURCE_MODEL_UID);
+    }
+
+    public String getSourceModelName() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.CI_SOURCE_MODEL_NAME);
+    }
+
+    public String getSourceModelInvariant() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.CI_SOURCE_MODEL_INVARIANT);
+    }
+
+    public void setIsProxy(Boolean isProxy) {
+        if (isProxy == null) {
+            setToscaPresentationValue(JsonPresentationFields.CI_IS_PROXY, false);
+        } else {
+            setToscaPresentationValue(JsonPresentationFields.CI_IS_PROXY, isProxy);
+        }
+    }
+
+    public Boolean getIsProxy() {
+        Boolean isProxy = (Boolean) getToscaPresentationValue(JsonPresentationFields.CI_IS_PROXY);
+        return (isProxy != null) ? isProxy : false;
+    }
+    
+    public Boolean isServiceSubstitution() {
+        return getOriginType() == OriginTypeEnum.ServiceSubstitution;
+    }
+
+    public void setOriginArchived(Boolean originArchived) {
+        if (originArchived == null) {
+            setToscaPresentationValue(JsonPresentationFields.CI_IS_ORIGIN_ARCHIVED, false);
+        } else {
+            setToscaPresentationValue(JsonPresentationFields.CI_IS_ORIGIN_ARCHIVED, originArchived);
+        }
+    }
+
+    public List<String> getDirectives() {
+        return (List<String>) getToscaPresentationValue(JsonPresentationFields.CI_DIRECTIVES);
+    }
+
+    public void setDirectives(List<String> directives) {
+        if (directives == null) {
+            directives = new ArrayList<>();
+        }
+        setToscaPresentationValue(JsonPresentationFields.CI_DIRECTIVES, directives);
+    }
+
+    public  Map<String, ToscaArtifactDataDefinition> getToscaArtifacts() {
+        return ( Map<String, ToscaArtifactDataDefinition>) getToscaPresentationValue(JsonPresentationFields.CI_ARTIFACTS);
+    }
+
+    public  void setToscaArtifacts(Map<String, ToscaArtifactDataDefinition> artifacts) {
+        if (artifacts == null){
+            artifacts = new HashMap<>();
+        }
+        setToscaPresentationValue(JsonPresentationFields.CI_ARTIFACTS, artifacts);
+    }
+
+    public Boolean isOriginArchived() {
+        Boolean originArchived = (Boolean) getToscaPresentationValue(JsonPresentationFields.CI_IS_ORIGIN_ARCHIVED);
+        return (originArchived != null) ? originArchived : false;
+    }
+
+    private String getDirectivesString() {
+        if (CollectionUtils.isEmpty(getDirectives())) {
+            return "";
+        }
+        return getDirectives().stream().collect(Collectors.joining(","));
+    }
+
+    @Override
+    public String toString() {
+        return "ComponentInstanceDataDefinition [icon=" + getIcon() + ", uniqueId=" + getUniqueId() + ", name="
+                + getName() + ", normalizedName=" + getNormalizedName() + ", componentUid=" + getComponentUid()
+                + ", creationTime=" + getCreationTime() + ", modificationTime=" + getModificationTime()
+                + ", description=" + getDescription() + ", posX=" + getPosX() + ", posY=" + getPosY()
+                + ", propertyValueCounter=" + getPropertyValueCounter() + ", attributeValueCounter="
+                + getAttributeValueCounter() + ", inputValueCounter=" + getInputValueCounter() + ", originType="
+                + getOriginType() + ", customizationUUID=" + getCustomizationUUID() + ", componentName="
+                + getComponentName() + ", componentVersion=" + getComponentVersion() + ", toscaComponentName="
+                + getToscaComponentName() + ", directives =" + getDirectivesString() + ", minOccurrences ="
+                + getMinOccurrences() + ", maxOccurrences =" + getMaxOccurrences() +"]";
+    }
 
 }