Support occurrences on node templates
[sdc.git] / common-be / src / main / java / org / openecomp / sdc / be / datatypes / elements / ComponentInstanceDataDefinition.java
index d701b0f..ce8dda0 100644 (file)
 package org.openecomp.sdc.be.datatypes.elements;
 
 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;
 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 {
@@ -49,6 +53,8 @@ public class ComponentInstanceDataDefinition extends ToscaDataDefinition {
         setDescription(dataDefinition.getDescription());
         setPosX(dataDefinition.getPosX());
         setPosY(dataDefinition.getPosY());
+        setMinOccurrences(dataDefinition.getMinOccurrences());
+        setMaxOccurrences(dataDefinition.getMaxOccurrences());
         setPropertyValueCounter(dataDefinition.getPropertyValueCounter());
         setNormalizedName(dataDefinition.getNormalizedName());
         setOriginType(dataDefinition.getOriginType());
@@ -64,6 +70,7 @@ public class ComponentInstanceDataDefinition extends ToscaDataDefinition {
         setIsProxy(dataDefinition.getIsProxy());
         setDirectives(dataDefinition.getDirectives());
         setOriginArchived(dataDefinition.isOriginArchived());
+        setToscaArtifacts(dataDefinition.getToscaArtifacts());
     }
 
     public String getIcon() {
@@ -96,6 +103,17 @@ public class ComponentInstanceDataDefinition extends ToscaDataDefinition {
 
     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());
+               }
     }
 
     public String getDescription() {
@@ -122,6 +140,22 @@ public class ComponentInstanceDataDefinition extends ToscaDataDefinition {
         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);
     }
@@ -273,6 +307,10 @@ public class ComponentInstanceDataDefinition extends ToscaDataDefinition {
         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) {
@@ -293,6 +331,17 @@ public class ComponentInstanceDataDefinition extends ToscaDataDefinition {
         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;
@@ -315,7 +364,8 @@ public class ComponentInstanceDataDefinition extends ToscaDataDefinition {
                 + getAttributeValueCounter() + ", inputValueCounter=" + getInputValueCounter() + ", originType="
                 + getOriginType() + ", customizationUUID=" + getCustomizationUUID() + ", componentName="
                 + getComponentName() + ", componentVersion=" + getComponentVersion() + ", toscaComponentName="
-                + getToscaComponentName() + ", directives =" + getDirectivesString() + "]";
+                + getToscaComponentName() + ", directives =" + getDirectivesString() + ", minOccurrences ="
+                + getMinOccurrences() + ", maxOccurrences =" + getMaxOccurrences() +"]";
     }
 
 }