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