aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java
diff options
context:
space:
mode:
authorMichael Lando <ml636r@att.com>2018-07-29 16:13:45 +0300
committerMichael Lando <ml636r@att.com>2018-07-29 16:20:34 +0300
commit5b593496b8f1b8e8be8d7d2dbcc223332e65a49b (patch)
tree2f9dfc45191e723da69cf74be7829784e9741b94 /catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java
parent9200382f2ce7b4bb729aa287d0878004b2d2b4f9 (diff)
re base code
Change-Id: I12a5ca14a6d8a87e9316b9ff362eb131105f98a5 Issue-ID: SDC-1566 Signed-off-by: Michael Lando <ml636r@att.com>
Diffstat (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java')
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java1629
1 files changed, 886 insertions, 743 deletions
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java
index c17c3fcb81..579dcdb074 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java
@@ -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.
@@ -21,6 +21,8 @@
package org.openecomp.sdc.be.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.google.common.collect.Maps;
+import org.apache.commons.collections.MapUtils;
import org.openecomp.sdc.be.config.ConfigurationManager;
import org.openecomp.sdc.be.dao.utils.MapUtil;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
@@ -28,750 +30,891 @@ import org.openecomp.sdc.be.model.category.CategoryDefinition;
import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElementTypeEnum;
import org.openecomp.sdc.common.api.ArtifactTypeEnum;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
+import static java.util.Collections.emptyList;
+import org.openecomp.sdc.be.datatypes.elements.GroupDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.PolicyDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.PolicyTargetType;
+import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
+import java.util.*;
+import java.util.function.Predicate;
import java.util.stream.Collectors;
import static java.util.Collections.emptyList;
-
-public abstract class Component implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = -6373756459967949120L;
-
- private ComponentMetadataDefinition componentMetadataDefinition;
- private Map<String, ArtifactDefinition> artifacts;
- private Map<String, ArtifactDefinition> deploymentArtifacts;
- private Map<String, ArtifactDefinition> toscaArtifacts;
- private List<CategoryDefinition> categories;
- private List<ComponentInstance> componentInstances;
- private List<RequirementCapabilityRelDef> componentInstancesRelations;
- private Map<String, List<ComponentInstanceInput>> componentInstancesInputs;
- private Map<String, List<ComponentInstanceProperty>> componentInstancesProperties;
- private Map<String, List<ComponentInstanceProperty>> componentInstancesAttributes;
- private Map<String, List<CapabilityDefinition>> capabilities;
- private Map<String, List<RequirementDefinition>> requirements;
- private List<InputDefinition> inputs;
- private List<GroupDefinition> groups;
- private Map<String, PolicyDefinition> policies;
- private String derivedFromGenericType;
- private String derivedFromGenericVersion;
- private String toscaType;
- protected List<AdditionalInformationDefinition> additionalInformation;
-
- public String getDerivedFromGenericVersion() {
- return derivedFromGenericVersion;
- }
-
- public void setDerivedFromGenericVersion(String derivedFromGenericVersion) {
- this.derivedFromGenericVersion = derivedFromGenericVersion;
- }
-
- public String getDerivedFromGenericType() {
- return derivedFromGenericType;
- }
-
- public void setDerivedFromGenericType(String derivedFromGenericType) {
- this.derivedFromGenericType = derivedFromGenericType;
- }
-
- public Component(ComponentMetadataDefinition componentMetadataDefinition) {
- this.componentMetadataDefinition = componentMetadataDefinition;
- }
-
- @JsonIgnore
- public ComponentMetadataDefinition getComponentMetadataDefinition() {
- return componentMetadataDefinition;
- }
-
- public Map<String, ArtifactDefinition> getArtifacts() {
- return artifacts;
- }
-
- public void setArtifacts(Map<String, ArtifactDefinition> artifacts) {
- this.artifacts = artifacts;
- }
-
- public Map<String, ArtifactDefinition> getToscaArtifacts() {
- return toscaArtifacts;
- }
-
- public void setToscaArtifacts(Map<String, ArtifactDefinition> toscaArtifacts) {
- this.toscaArtifacts = toscaArtifacts;
- }
-
- public String getUniqueId() {
- return componentMetadataDefinition.getMetadataDataDefinition().getUniqueId();
- }
-
- public void setUniqueId(String uniqueId) {
- componentMetadataDefinition.getMetadataDataDefinition().setUniqueId(uniqueId);
- }
-
- public void setName(String name) {
- componentMetadataDefinition.getMetadataDataDefinition().setName(name);
- }
-
- public void setVersion(String version) {
- componentMetadataDefinition.getMetadataDataDefinition().setVersion(version);
- }
-
- public void setHighestVersion(Boolean isHighestVersion) {
- componentMetadataDefinition.getMetadataDataDefinition().setHighestVersion(isHighestVersion);
- }
-
- public void setCreationDate(Long creationDate) {
- componentMetadataDefinition.getMetadataDataDefinition().setCreationDate(creationDate);
- }
-
- public void setLastUpdateDate(Long lastUpdateDate) {
- componentMetadataDefinition.getMetadataDataDefinition().setLastUpdateDate(lastUpdateDate);
- }
-
- public void setDescription(String description) {
- componentMetadataDefinition.getMetadataDataDefinition().setDescription(description);
- }
-
- public void setState(LifecycleStateEnum state) {
- componentMetadataDefinition.getMetadataDataDefinition().setState(state.name());
- }
-
- public void setTags(List<String> tags) {
- componentMetadataDefinition.getMetadataDataDefinition().setTags(tags);
- }
-
- public void setConformanceLevel(String conformanceLevel) {
- componentMetadataDefinition.getMetadataDataDefinition().setConformanceLevel(conformanceLevel);
- }
-
- public void setIcon(String icon) {
- componentMetadataDefinition.getMetadataDataDefinition().setIcon(icon);
- }
-
- public void setContactId(String contactId) {
- componentMetadataDefinition.getMetadataDataDefinition().setContactId(contactId);
- }
-
- public String getCreatorUserId() {
- return this.componentMetadataDefinition.getMetadataDataDefinition().getCreatorUserId();
- }
-
- public void setCreatorUserId(String creatorUserId) {
- this.componentMetadataDefinition.getMetadataDataDefinition().setCreatorUserId(creatorUserId);
- }
-
- public String getCreatorFullName() {
- return this.componentMetadataDefinition.getMetadataDataDefinition().getCreatorFullName();
- }
-
- public void setCreatorFullName(String creatorFullName) {
- this.componentMetadataDefinition.getMetadataDataDefinition().setCreatorFullName(creatorFullName);
- }
-
- public String getLastUpdaterUserId() {
- return this.componentMetadataDefinition.getMetadataDataDefinition().getLastUpdaterUserId();
- }
-
- public void setLastUpdaterUserId(String lastUpdaterUserId) {
- this.componentMetadataDefinition.getMetadataDataDefinition().setLastUpdaterUserId(lastUpdaterUserId);
- }
-
- public String getLastUpdaterFullName() {
- return this.componentMetadataDefinition.getMetadataDataDefinition().getLastUpdaterFullName();
- }
-
- public void setLastUpdaterFullName(String lastUpdaterFullName) {
- this.componentMetadataDefinition.getMetadataDataDefinition().setLastUpdaterFullName(lastUpdaterFullName);
- }
-
- public String getName() {
- return componentMetadataDefinition.getMetadataDataDefinition().getName();
- }
-
- public String getVersion() {
- return componentMetadataDefinition.getMetadataDataDefinition().getVersion();
- }
-
- public Boolean isHighestVersion() {
- return componentMetadataDefinition.getMetadataDataDefinition().isHighestVersion();
- }
-
- public Long getCreationDate() {
- return componentMetadataDefinition.getMetadataDataDefinition().getCreationDate();
- }
-
- public Long getLastUpdateDate() {
- return componentMetadataDefinition.getMetadataDataDefinition().getLastUpdateDate();
- }
-
- public String getDescription() {
- return componentMetadataDefinition.getMetadataDataDefinition().getDescription();
- }
-
- public LifecycleStateEnum getLifecycleState() {
- if (componentMetadataDefinition.getMetadataDataDefinition().getState() != null) {
- return LifecycleStateEnum.valueOf(componentMetadataDefinition.getMetadataDataDefinition().getState());
- } else {
- return null;
- }
- }
-
- public List<String> getTags() {
- return componentMetadataDefinition.getMetadataDataDefinition().getTags();
- }
-
- public String getConformanceLevel() {
- return componentMetadataDefinition.getMetadataDataDefinition().getConformanceLevel();
- }
-
- public String getIcon() {
- return componentMetadataDefinition.getMetadataDataDefinition().getIcon();
- }
-
- public String getContactId() {
- return componentMetadataDefinition.getMetadataDataDefinition().getContactId();
- }
-
- public List<InputDefinition> getInputs() {
- return inputs;
- }
-
- public void setInputs(List<InputDefinition> inputs) {
- this.inputs = inputs;
- }
-
- public void setLifecycleState(LifecycleStateEnum state) {
- if (state != null) {
- this.componentMetadataDefinition.getMetadataDataDefinition().setState(state.name());
- }
- }
-
- public String getUUID() {
- return componentMetadataDefinition.getMetadataDataDefinition().getUUID();
- }
-
- public void setUUID(String uUID) {
- componentMetadataDefinition.getMetadataDataDefinition().setUUID(uUID);
- }
-
- public void setSystemName(String systemName) {
- componentMetadataDefinition.getMetadataDataDefinition().setSystemName(systemName);
- }
-
- public String getSystemName() {
- return componentMetadataDefinition.getMetadataDataDefinition().getSystemName();
- }
-
- public void setAllVersions(Map<String, String> allVersions) {
- componentMetadataDefinition.getMetadataDataDefinition().setAllVersions(allVersions);
- }
-
- public Map<String, String> getAllVersions() {
- return componentMetadataDefinition.getMetadataDataDefinition().getAllVersions();
- }
-
- public Map<String, ArtifactDefinition> getDeploymentArtifacts() {
- return deploymentArtifacts;
- }
-
- public void setDeploymentArtifacts(Map<String, ArtifactDefinition> deploymentArtifacts) {
- this.deploymentArtifacts = deploymentArtifacts;
- }
-
- public Map<String, ArtifactDefinition> getAllArtifacts() {
- HashMap<String, ArtifactDefinition> allArtifacts = new HashMap<>();
- allArtifacts.putAll(Optional.ofNullable(this.deploymentArtifacts).orElse(Collections.emptyMap()));
- allArtifacts.putAll(Optional.ofNullable(this.artifacts).orElse(Collections.emptyMap()));
- return allArtifacts;
- }
-
- public List<CategoryDefinition> getCategories() {
- return categories;
- }
-
- public void setCategories(List<CategoryDefinition> categories) {
- this.categories = categories;
- }
-
- public String getNormalizedName() {
- return componentMetadataDefinition.getMetadataDataDefinition().getNormalizedName();
- }
-
- public void setNormalizedName(String normalizedName) {
- componentMetadataDefinition.getMetadataDataDefinition().setNormalizedName(normalizedName);
- }
-
- public ComponentTypeEnum getComponentType() {
- return this.componentMetadataDefinition.getMetadataDataDefinition().getComponentType();
- }
-
- public void setComponentType(ComponentTypeEnum componentType) {
- this.componentMetadataDefinition.getMetadataDataDefinition().setComponentType(componentType);
- }
-
- public Map<String, List<CapabilityDefinition>> getCapabilities() {
- return capabilities;
- }
-
- public void setCapabilities(Map<String, List<CapabilityDefinition>> capabilities) {
- this.capabilities = capabilities;
- }
-
- public Map<String, List<RequirementDefinition>> getRequirements() {
- return requirements;
- }
-
- public void setRequirements(Map<String, List<RequirementDefinition>> requirements) {
- this.requirements = requirements;
- }
-
- public List<ComponentInstance> getComponentInstances() {
- return componentInstances;
- }
-
- public Optional<ComponentInstance> fetchInstanceById(String instanceId) {
- return Optional.ofNullable(MapUtil.toMap(componentInstances, ComponentInstance::getUniqueId).get(instanceId));
- }
-
- @SuppressWarnings("unchecked")
- public Map<String, ArtifactDefinition> safeGetComponentInstanceDeploymentArtifacts(String componentInstanceId) {
- Optional<ComponentInstance> componentInstanceById = getComponentInstanceById(componentInstanceId);
- Map<String, ArtifactDefinition> instanceDeploymentArtifacts = componentInstanceById.get().safeGetDeploymentArtifacts();
- return instanceDeploymentArtifacts != null ? instanceDeploymentArtifacts : Collections.emptyMap();
- }
-
- @SuppressWarnings("unchecked")
- public Map<String, ArtifactDefinition> safeGetComponentInstanceInformationalArtifacts(String componentInstanceId) {
- Optional<ComponentInstance> componentInstanceById = getComponentInstanceById(componentInstanceId);
- Map<String, ArtifactDefinition> instanceInformationalArtifacts = componentInstanceById.get().safeGetInformationalArtifacts();
- return instanceInformationalArtifacts != null ? instanceInformationalArtifacts : Collections.emptyMap();
- }
-
- public List<ArtifactDefinition> safeGetComponentInstanceHeatArtifacts(String componentInstanceId) {
- Optional<ComponentInstance> componentInstanceById = getComponentInstanceById(componentInstanceId);
- List<ArtifactDefinition> instanceHeatEnvArtifacts = Optional.ofNullable(componentInstanceById.get().safeGetDeploymentArtifacts().values()).orElse(new ArrayList<ArtifactDefinition>())
- .stream()
- .filter(artifact -> artifact.getArtifactType() != null && artifact.getArtifactType().equals(ArtifactTypeEnum.HEAT_ENV.name()))
- .collect(Collectors.toList());
- return instanceHeatEnvArtifacts == null ? emptyList() : instanceHeatEnvArtifacts;
- }
-
- public void setComponentInstances(List<ComponentInstance> resourceInstances) {
- this.componentInstances = resourceInstances;
- }
-
- public List<RequirementCapabilityRelDef> getComponentInstancesRelations() {
- return componentInstancesRelations;
- }
-
- public void setComponentInstancesRelations(List<RequirementCapabilityRelDef> resourceInstancesRelations) {
- this.componentInstancesRelations = resourceInstancesRelations;
- }
-
- public Map<String, List<ComponentInstanceProperty>> getComponentInstancesProperties() {
- return componentInstancesProperties;
- }
-
- public List<ComponentInstanceProperty> safeGetComponentInstanceProperties(String cmptInstacneId) {
- return this.safeGetComponentInstanceEntity(cmptInstacneId, this.componentInstancesProperties);
- }
-
- public List<ComponentInstanceInput> safeGetComponentInstanceInput(String comptInstanceId) {
- return this.safeGetComponentInstanceEntity(comptInstanceId, this.componentInstancesInputs);
- }
-
- public void setComponentInstancesProperties(
- Map<String, List<ComponentInstanceProperty>> resourceInstancesProperties) {
- this.componentInstancesProperties = resourceInstancesProperties;
- }
-
- public Boolean getIsDeleted() {
- return componentMetadataDefinition.getMetadataDataDefinition().isDeleted();
- }
-
- public void setIsDeleted(Boolean isDeleted) {
- componentMetadataDefinition.getMetadataDataDefinition().setIsDeleted(isDeleted);
- }
-
- public String getProjectCode() {
- return componentMetadataDefinition.getMetadataDataDefinition().getProjectCode();
- }
-
- public void setProjectCode(String projectCode) {
- componentMetadataDefinition.getMetadataDataDefinition().setProjectCode(projectCode);
- }
-
- public String getCsarUUID() {
- return componentMetadataDefinition.getMetadataDataDefinition().getCsarUUID();
- }
-
- public void setCsarUUID(String csarUUID) {
- componentMetadataDefinition.getMetadataDataDefinition().setCsarUUID(csarUUID);
- }
-
- public String getCsarVersion() {
- return componentMetadataDefinition.getMetadataDataDefinition().getCsarVersion();
- }
-
- public void setCsarVersion(String csarVersion) {
- componentMetadataDefinition.getMetadataDataDefinition().setCsarVersion(csarVersion);
- }
-
- public String getImportedToscaChecksum() {
- return componentMetadataDefinition.getMetadataDataDefinition().getImportedToscaChecksum();
- }
-
- public void setImportedToscaChecksum(String importedToscaChecksum) {
- componentMetadataDefinition.getMetadataDataDefinition().setImportedToscaChecksum(importedToscaChecksum);
- }
-
- public String getInvariantUUID() {
- return componentMetadataDefinition.getMetadataDataDefinition().getInvariantUUID();
- }
-
- public void setInvariantUUID(String invariantUUID) {
- componentMetadataDefinition.getMetadataDataDefinition().setInvariantUUID(invariantUUID);
- }
-
- public Optional<ComponentInstance> getComponentInstanceById(String id) {
- if (componentInstances == null) {
- return Optional.empty();
- }
- return componentInstances.stream().filter(instance -> id.equals(instance.getUniqueId())).findFirst();
- }
-
- public List<GroupDefinition> getGroups() {
- return groups;
- }
- public Optional<GroupDefinition> getGroupById(String id){
- return groups.stream().filter(g -> g.getUniqueId().equals(id)).findAny();
-
- }
-
- public void setGroups(List<GroupDefinition> groups) {
- this.groups = groups;
- }
-
- public Map<String, PolicyDefinition> getPolicies() {
- return policies;
- }
-
- public void setPolicies(Map<String, PolicyDefinition> policies) {
- this.policies = policies;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((artifacts == null) ? 0 : artifacts.hashCode());
- result = prime * result + ((categories == null) ? 0 : categories.hashCode());
- result = prime * result + ((componentMetadataDefinition == null) ? 0 : componentMetadataDefinition.hashCode());
- result = prime * result + ((deploymentArtifacts == null) ? 0 : deploymentArtifacts.hashCode());
- result = prime * result + ((capabilities == null) ? 0 : capabilities.hashCode());
- result = prime * result + ((requirements == null) ? 0 : requirements.hashCode());
- result = prime * result + ((componentInstances == null) ? 0 : componentInstances.hashCode());
- result = prime * result
- + ((componentInstancesProperties == null) ? 0 : componentInstancesProperties.hashCode());
- result = prime * result
- + ((componentInstancesAttributes == null) ? 0 : componentInstancesAttributes.hashCode());
- result = prime * result + ((componentInstancesInputs == null) ? 0 : componentInstancesInputs.hashCode());
- result = prime * result + ((componentInstancesRelations == null) ? 0 : componentInstancesRelations.hashCode());
- result = prime * result + ((groups == null) ? 0 : groups.hashCode());
- result = prime * result + ((policies == null) ? 0 : policies.hashCode());
- result = prime * result + ((derivedFromGenericType == null) ? 0 : derivedFromGenericType.hashCode());
- result = prime * result + ((derivedFromGenericVersion == null) ? 0 : derivedFromGenericVersion.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- Component other = (Component) obj;
- if (artifacts == null) {
- if (other.artifacts != null)
- return false;
- } else if (!artifacts.equals(other.artifacts))
- return false;
- if (categories == null) {
- if (other.categories != null)
- return false;
- } else if (!categories.equals(other.categories))
- return false;
- if (componentMetadataDefinition == null) {
- if (other.componentMetadataDefinition != null)
- return false;
- } else if (!componentMetadataDefinition.equals(other.componentMetadataDefinition))
- return false;
- if (deploymentArtifacts == null) {
- if (other.deploymentArtifacts != null)
- return false;
- } else if (!deploymentArtifacts.equals(other.deploymentArtifacts))
- return false;
- if (componentInstances == null) {
- if (other.componentInstances != null)
- return false;
- } else if (!componentInstances.equals(other.componentInstances))
- return false;
- if (componentInstancesProperties == null) {
- if (other.componentInstancesProperties != null)
- return false;
- } else if (!componentInstancesProperties.equals(other.componentInstancesProperties))
- return false;
-
- if (!Objects.equals(componentInstancesAttributes, other.componentInstancesAttributes)) {
- return false;
- }
- if (!Objects.equals(componentInstancesInputs, other.componentInstancesInputs)) {
- return false;
- }
- if (componentInstancesRelations == null) {
- if (other.componentInstancesRelations != null)
- return false;
- } else if (!componentInstancesRelations.equals(other.componentInstancesRelations))
- return false;
- if (requirements == null) {
- if (other.requirements != null)
- return false;
- } else if (!requirements.equals(other.requirements))
- return false;
- if (capabilities == null) {
- if (other.capabilities != null)
- return false;
- } else if (!capabilities.equals(other.capabilities))
- return false;
- if (groups == null) {
- if (other.groups != null)
- return false;
- } else if (!groups.equals(other.groups))
- return false;
- if (policies == null) {
- if (other.policies != null)
- return false;
- } else if (!policies.equals(other.policies))
- return false;
- if (derivedFromGenericType == null) {
- if (other.derivedFromGenericType != null)
- return false;
- } else if (!derivedFromGenericType.equals(other.derivedFromGenericType))
- return false;
- if (derivedFromGenericVersion == null) {
- if (other.derivedFromGenericVersion != null)
- return false;
- } else if (!derivedFromGenericVersion.equals(other.derivedFromGenericVersion))
- return false;
- return true;
- }
-
- public void addCategory(String category, String subCategory) {
- if (category != null || subCategory != null) {
- if (categories == null) {
- categories = new ArrayList<>();
- }
- CategoryDefinition selectedCategory = null;
- for (CategoryDefinition categoryDef : categories) {
- if (categoryDef.getName().equals(category)) {
- selectedCategory = categoryDef;
- }
- }
- if (selectedCategory == null) {
- selectedCategory = new CategoryDefinition();
- selectedCategory.setName(category);
- categories.add(selectedCategory);
- }
- List<SubCategoryDefinition> subcategories = selectedCategory.getSubcategories();
- if (subcategories == null) {
- subcategories = new ArrayList<>();
- selectedCategory.setSubcategories(subcategories);
- }
- SubCategoryDefinition selectedSubcategory = null;
- for (SubCategoryDefinition subcategory : subcategories) {
- if (subcategory.getName().equals(subCategory)) {
- selectedSubcategory = subcategory;
- }
- }
- if (selectedSubcategory == null) {
- selectedSubcategory = new SubCategoryDefinition();
- selectedSubcategory.setName(subCategory);
- subcategories.add(selectedSubcategory);
- }
- }
- }
-
- public void addCategory(CategoryDefinition category) {
- addCategory(category, null);
- }
-
- public void addCategory(CategoryDefinition category, SubCategoryDefinition subCategory) {
- if (categories == null) {
- categories = new ArrayList<>();
- }
- boolean foundCat = false;
- for (CategoryDefinition cat : categories) {
- if (cat.getName().equals(category.getName())) {
- foundCat = true;
- if (subCategory != null) {
- List<SubCategoryDefinition> subcategories = cat.getSubcategories();
- if (subcategories == null) {
- subcategories = new ArrayList<>();
- cat.setSubcategories(subcategories);
- }
- for (SubCategoryDefinition subcat : subcategories) {
- boolean foundSub = false;
- if (subcat.getName().equals(subCategory.getName())) {
- foundSub = true;
- }
- if (foundSub == false) {
- subcategories.add(subCategory);
- break;
- }
- }
- }
- }
- }
- if (foundCat == false) {
- if (subCategory != null) {
- category.addSubCategory(subCategory);
- }
- categories.add(category);
- }
- }
-
- public Map<String, List<ComponentInstanceProperty>> getComponentInstancesAttributes() {
- return componentInstancesAttributes;
- }
-
- public void setComponentInstancesAttributes(
- Map<String, List<ComponentInstanceProperty>> componentInstancesAttributes) {
- this.componentInstancesAttributes = componentInstancesAttributes;
- }
-
- public Map<String, List<ComponentInstanceInput>> getComponentInstancesInputs() {
- return componentInstancesInputs;
- }
-
- public List<ComponentInstanceInput> safeGetComponentInstanceInputsByName(String cmptInstanceName) {
- List<ComponentInstanceInput> emptyPropsList = emptyList();
- if (this.componentInstancesInputs == null) {
- return emptyPropsList;
- }
- Optional<List<ComponentInstanceInput>> instanceInputsByName = this.componentInstances.stream()
- .filter(ci -> ci.getName().equals(cmptInstanceName))
- .map(ComponentInstance::getUniqueId)
- .map(instanceId -> safeGetComponentInstanceEntity(instanceId, this.componentInstancesInputs))
- .findAny();
- return instanceInputsByName.orElse(emptyPropsList);
- }
-
- private <T> List<T> safeGetComponentInstanceEntity(String cmptInstanceId, Map<String, List<T>> instanceEntities) {
- List<T> emptyPropsList = emptyList();
- if (instanceEntities == null) {
- return emptyPropsList;
- }
- List<T> cmptInstanceProps = instanceEntities.get(cmptInstanceId);
- return cmptInstanceProps == null ? emptyPropsList : cmptInstanceProps;
- }
-
-
-
- public void setComponentInstancesInputs(Map<String, List<ComponentInstanceInput>> componentInstancesInputs) {
- this.componentInstancesInputs = componentInstancesInputs;
- }
-
- public void setSpecificComponetTypeArtifacts(Map<String, ArtifactDefinition> specificComponentTypeArtifacts) {
- // Implement where needed
- }
-
- public void setMetadataDefinition(ComponentMetadataDefinition metadataDefinition) {
- this.componentMetadataDefinition = metadataDefinition;
- }
-
- public String fetchGenericTypeToscaNameFromConfig(){
- // Implement where needed
- return ConfigurationManager.getConfigurationManager().getConfiguration().getGenericAssetNodeTypes().get(this.assetType());
- }
-
- public String assetType(){
- // Implement where needed
- return this.getComponentType().getValue();
- }
-
- public boolean shouldGenerateInputs(){
- // Implement where needed
- return true;
- }
-
- public boolean deriveFromGeneric(){
- // Implement where needed
- return true;
- }
-
- public void setDerivedFromGenericInfo(Resource genericType){
- derivedFromGenericType = genericType.getToscaResourceName();
- derivedFromGenericVersion = genericType.getVersion();
- }
-
- public boolean isTopologyTemplate() {
- return ToscaElementTypeEnum.TopologyTemplate.getValue().equals(toscaType);
- }
-
- public String getToscaType() {
- return toscaType;
- }
-
- public void setToscaType(String toscaType) {
- this.toscaType = toscaType;
- }
-
- public List<AdditionalInformationDefinition> getAdditionalInformation() {
- return additionalInformation;
- }
-
- public void setAdditionalInformation(List<AdditionalInformationDefinition> additionalInformation) {
- this.additionalInformation = additionalInformation;
- }
-
- public PolicyDefinition getPolicyById(String id) {
- return policies != null ? policies.get(id) : null;
- }
-
- public List<PolicyDefinition> resolvePoliciesList() {
- if (policies == null) {
- return emptyList();
- }
- return new ArrayList<>(policies.values());
- }
-
- public List<PolicyDefinition> resolvePoliciesByComponentInstanceTarget(String instanceId) {
- if (policies == null) {
- return emptyList();
- }
- return policies.values().stream()
- .filter(policy -> policy.containsCmptInstanceAsTarget(instanceId))
+import static java.util.Collections.emptyMap;
+import static java.util.stream.Collectors.toMap;
+import static org.apache.commons.collections.CollectionUtils.isEmpty;
+import static org.apache.commons.collections.MapUtils.isEmpty;
+
+public abstract class Component {
+
+ private ComponentMetadataDefinition componentMetadataDefinition;
+ private Map<String, ArtifactDefinition> artifacts;
+ private Map<String, ArtifactDefinition> deploymentArtifacts;
+ private Map<String, ArtifactDefinition> toscaArtifacts;
+ private List<CategoryDefinition> categories;
+ private List<ComponentInstance> componentInstances;
+ private List<RequirementCapabilityRelDef> componentInstancesRelations;
+ private Map<String, List<ComponentInstanceInput>> componentInstancesInputs;
+ private Map<String, List<ComponentInstanceProperty>> componentInstancesProperties;
+ private Map<String, List<ComponentInstanceProperty>> componentInstancesAttributes;
+ private Map<String, List<CapabilityDefinition>> capabilities;
+ private Map<String, List<RequirementDefinition>> requirements;
+ private List<InputDefinition> inputs;
+ private List<GroupDefinition> groups;
+ private Map<String, PolicyDefinition> policies;
+ private String derivedFromGenericType;
+ private String derivedFromGenericVersion;
+ private String toscaType;
+ protected List<AdditionalInformationDefinition> additionalInformation;
+
+ public Component(ComponentMetadataDefinition componentMetadataDefinition) {
+ this.componentMetadataDefinition = componentMetadataDefinition;
+ }
+
+ public String getDerivedFromGenericVersion() {
+ return derivedFromGenericVersion;
+ }
+
+ public void setDerivedFromGenericVersion(String derivedFromGenericVersion) {
+ this.derivedFromGenericVersion = derivedFromGenericVersion;
+ }
+
+ public String getDerivedFromGenericType() {
+ return derivedFromGenericType;
+ }
+
+ public void setDerivedFromGenericType(String derivedFromGenericType) {
+ this.derivedFromGenericType = derivedFromGenericType;
+ }
+
+
+ @JsonIgnore
+ public ComponentMetadataDefinition getComponentMetadataDefinition() {
+ return componentMetadataDefinition;
+ }
+
+ public Map<String, ArtifactDefinition> getArtifacts() {
+ return artifacts;
+ }
+
+ public void setArtifacts(Map<String, ArtifactDefinition> artifacts) {
+ this.artifacts = artifacts;
+ }
+
+ public Map<String, ArtifactDefinition> getToscaArtifacts() {
+ return toscaArtifacts;
+ }
+
+ public void setToscaArtifacts(Map<String, ArtifactDefinition> toscaArtifacts) {
+ this.toscaArtifacts = toscaArtifacts;
+ }
+
+ public String getUniqueId() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getUniqueId();
+ }
+
+ public void setUniqueId(String uniqueId) {
+ componentMetadataDefinition.getMetadataDataDefinition().setUniqueId(uniqueId);
+ }
+
+ public void setName(String name) {
+ componentMetadataDefinition.getMetadataDataDefinition().setName(name);
+ }
+
+ public void setVersion(String version) {
+ componentMetadataDefinition.getMetadataDataDefinition().setVersion(version);
+ }
+
+ public void setHighestVersion(Boolean isHighestVersion) {
+ componentMetadataDefinition.getMetadataDataDefinition().setHighestVersion(isHighestVersion);
+ }
+
+ public void setCreationDate(Long creationDate) {
+ componentMetadataDefinition.getMetadataDataDefinition().setCreationDate(creationDate);
+ }
+
+ public void setLastUpdateDate(Long lastUpdateDate) {
+ componentMetadataDefinition.getMetadataDataDefinition().setLastUpdateDate(lastUpdateDate);
+ }
+
+ public void setDescription(String description) {
+ componentMetadataDefinition.getMetadataDataDefinition().setDescription(description);
+ }
+
+ public void setState(LifecycleStateEnum state) {
+ componentMetadataDefinition.getMetadataDataDefinition().setState(state.name());
+ }
+
+ public void setTags(List<String> tags) {
+ componentMetadataDefinition.getMetadataDataDefinition().setTags(tags);
+ }
+
+ public void setConformanceLevel(String conformanceLevel) {
+ componentMetadataDefinition.getMetadataDataDefinition().setConformanceLevel(conformanceLevel);
+ }
+
+ public void setIcon(String icon) {
+ componentMetadataDefinition.getMetadataDataDefinition().setIcon(icon);
+ }
+
+ public void setContactId(String contactId) {
+ componentMetadataDefinition.getMetadataDataDefinition().setContactId(contactId);
+ }
+
+ public String getCreatorUserId() {
+ return this.componentMetadataDefinition.getMetadataDataDefinition().getCreatorUserId();
+ }
+
+ public void setCreatorUserId(String creatorUserId) {
+ this.componentMetadataDefinition.getMetadataDataDefinition().setCreatorUserId(creatorUserId);
+ }
+
+ public String getCreatorFullName() {
+ return this.componentMetadataDefinition.getMetadataDataDefinition().getCreatorFullName();
+ }
+
+ public void setCreatorFullName(String creatorFullName) {
+ this.componentMetadataDefinition.getMetadataDataDefinition().setCreatorFullName(creatorFullName);
+ }
+
+ public String getLastUpdaterUserId() {
+ return this.componentMetadataDefinition.getMetadataDataDefinition().getLastUpdaterUserId();
+ }
+
+ public void setLastUpdaterUserId(String lastUpdaterUserId) {
+ this.componentMetadataDefinition.getMetadataDataDefinition().setLastUpdaterUserId(lastUpdaterUserId);
+ }
+
+ public String getLastUpdaterFullName() {
+ return this.componentMetadataDefinition.getMetadataDataDefinition().getLastUpdaterFullName();
+ }
+
+ public void setLastUpdaterFullName(String lastUpdaterFullName) {
+ this.componentMetadataDefinition.getMetadataDataDefinition().setLastUpdaterFullName(lastUpdaterFullName);
+ }
+
+ public String getName() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getName();
+ }
+
+ public String getVersion() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getVersion();
+ }
+
+ public Boolean isHighestVersion() {
+ return componentMetadataDefinition.getMetadataDataDefinition().isHighestVersion();
+ }
+
+ public Long getCreationDate() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getCreationDate();
+ }
+
+ public Long getLastUpdateDate() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getLastUpdateDate();
+ }
+
+ public String getDescription() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getDescription();
+ }
+
+ public LifecycleStateEnum getLifecycleState() {
+ if (componentMetadataDefinition.getMetadataDataDefinition().getState() != null) {
+ return LifecycleStateEnum.valueOf(componentMetadataDefinition.getMetadataDataDefinition().getState());
+ }
+ else {
+ return null;
+ }
+ }
+
+ public List<String> getTags() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getTags();
+ }
+
+ public String getConformanceLevel() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getConformanceLevel();
+ }
+
+ public String getIcon() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getIcon();
+ }
+
+ public String getContactId() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getContactId();
+ }
+
+ public List<InputDefinition> getInputs() {
+ return inputs;
+ }
+
+ public List<InputDefinition> safeGetInputs() {
+ return inputs == null ? new ArrayList<>() : inputs;
+ }
+
+ public void setInputs(List<InputDefinition> inputs) {
+ this.inputs = inputs;
+ }
+
+ public void setLifecycleState(LifecycleStateEnum state) {
+ if (state != null) {
+ this.componentMetadataDefinition.getMetadataDataDefinition().setState(state.name());
+ }
+ }
+
+ public String getUUID() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getUUID();
+ }
+
+ public void setUUID(String uUID) {
+ componentMetadataDefinition.getMetadataDataDefinition().setUUID(uUID);
+ }
+
+ public void setSystemName(String systemName) {
+ componentMetadataDefinition.getMetadataDataDefinition().setSystemName(systemName);
+ }
+
+ public String getSystemName() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getSystemName();
+ }
+
+ public void setAllVersions(Map<String, String> allVersions) {
+ componentMetadataDefinition.getMetadataDataDefinition().setAllVersions(allVersions);
+ }
+
+ public Map<String, String> getAllVersions() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getAllVersions();
+ }
+
+ public Map<String, ArtifactDefinition> getDeploymentArtifacts() {
+ return deploymentArtifacts;
+ }
+
+ public void setDeploymentArtifacts(Map<String, ArtifactDefinition> deploymentArtifacts) {
+ this.deploymentArtifacts = deploymentArtifacts;
+ }
+
+ public Map<String, ArtifactDefinition> getAllArtifacts() {
+ HashMap<String, ArtifactDefinition> allArtifacts = new HashMap<>();
+ allArtifacts.putAll(Optional.ofNullable(this.deploymentArtifacts).orElse(emptyMap()));
+ allArtifacts.putAll(Optional.ofNullable(this.artifacts).orElse(emptyMap()));
+ return allArtifacts;
+ }
+
+ public List<CategoryDefinition> getCategories() {
+ return categories;
+ }
+
+ public void setCategories(List<CategoryDefinition> categories) {
+ this.categories = categories;
+ }
+
+ public String getNormalizedName() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getNormalizedName();
+ }
+
+ public void setNormalizedName(String normalizedName) {
+ componentMetadataDefinition.getMetadataDataDefinition().setNormalizedName(normalizedName);
+ }
+
+ public ComponentTypeEnum getComponentType() {
+ return this.componentMetadataDefinition.getMetadataDataDefinition().getComponentType();
+ }
+
+ public void setComponentType(ComponentTypeEnum componentType) {
+ this.componentMetadataDefinition.getMetadataDataDefinition().setComponentType(componentType);
+ }
+
+ public Map<String, List<CapabilityDefinition>> getCapabilities() {
+ if (MapUtils.isEmpty(capabilities)) {
+ capabilities = Maps.newHashMap();
+ }
+ return capabilities;
+ }
+
+ public void setCapabilities(Map<String, List<CapabilityDefinition>> capabilities) {
+ this.capabilities = capabilities;
+ }
+
+ public Map<String, List<RequirementDefinition>> getRequirements() {
+ return requirements;
+ }
+
+ public void setRequirements(Map<String, List<RequirementDefinition>> requirements) {
+ this.requirements = requirements;
+ }
+
+ public List<ComponentInstance> getComponentInstances() {
+ return componentInstances;
+ }
+
+ public List<ComponentInstance> safeGetComponentInstances() {
+ if(componentInstances != null) {
+ return componentInstances;
+ }else {
+ return emptyList();
+ }
+ }
+
+ public Optional<ComponentInstance> fetchInstanceById(String instanceId) {
+ return Optional.ofNullable(MapUtil.toMap(componentInstances, ComponentInstance::getUniqueId).get(instanceId));
+ }
+
+ public Map<String, ArtifactDefinition> safeGetComponentInstanceDeploymentArtifacts(String componentInstanceId) {
+ return getComponentInstanceById(componentInstanceId).map(ComponentInstance::safeGetDeploymentArtifacts)
+ .orElse(emptyMap());
+ }
+
+ public Map<String, ArtifactDefinition> safeGetComponentInstanceInformationalArtifacts(String componentInstanceId) {
+ return getComponentInstanceById(componentInstanceId).map(ComponentInstance::safeGetInformationalArtifacts)
+ .orElse(emptyMap());
+ }
+
+ public List<ArtifactDefinition> safeGetComponentInstanceHeatArtifacts(String componentInstanceId) {
+ return safeGetComponentInstanceDeploymentArtifacts(componentInstanceId)
+ .values()
+ .stream()
+ .filter(artifact -> ArtifactTypeEnum.HEAT_ENV.name().equals(artifact.getArtifactType()))
.collect(Collectors.toList());
- }
-
- public List<GroupDefinition> resolveGroupsByMember(String instanceId) {
- if (groups == null) {
- return emptyList();
- }
- return groups.stream()
- .filter(group -> group.containsInstanceAsMember(instanceId))
- .collect(Collectors.toList());
- }
+ }
+
+ public void setComponentInstances(List<ComponentInstance> resourceInstances) {
+ this.componentInstances = resourceInstances;
+ }
+
+ public List<RequirementCapabilityRelDef> getComponentInstancesRelations() {
+ return componentInstancesRelations;
+ }
+
+ public void setComponentInstancesRelations(List<RequirementCapabilityRelDef> resourceInstancesRelations) {
+ this.componentInstancesRelations = resourceInstancesRelations;
+ }
+
+ public Map<String, List<ComponentInstanceProperty>> getComponentInstancesProperties() {
+ return componentInstancesProperties;
+ }
+
+ public Map<String, List<ComponentInstanceProperty>> safeGetComponentInstancesProperties() {
+ return componentInstancesProperties == null ? emptyMap() : componentInstancesProperties;
+ }
+
+ public Map<String, List<ComponentInstanceInput>> safeGetComponentInstancesInputs() {
+ return componentInstancesInputs == null ? emptyMap() : componentInstancesInputs;
+ }
+
+ public List<ComponentInstanceProperty> safeGetComponentInstanceProperties(String cmptInstacneId) {
+ return this.safeGetComponentInstanceEntity(cmptInstacneId, this.componentInstancesProperties);
+ }
+
+ public List<ComponentInstanceInput> safeGetComponentInstanceInput(String comptInstanceId) {
+ return this.safeGetComponentInstanceEntity(comptInstanceId, this.componentInstancesInputs);
+ }
+
+ public void setComponentInstancesProperties(
+ Map<String, List<ComponentInstanceProperty>> resourceInstancesProperties) {
+ this.componentInstancesProperties = resourceInstancesProperties;
+ }
+
+ public Boolean getIsDeleted() {
+ return componentMetadataDefinition.getMetadataDataDefinition().isDeleted();
+ }
+
+ public void setIsDeleted(Boolean isDeleted) {
+ componentMetadataDefinition.getMetadataDataDefinition().setIsDeleted(isDeleted);
+ }
+
+ public String getProjectCode() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getProjectCode();
+ }
+
+ public void setProjectCode(String projectCode) {
+ componentMetadataDefinition.getMetadataDataDefinition().setProjectCode(projectCode);
+ }
+
+ public String getCsarUUID() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getCsarUUID();
+ }
+
+ public void setCsarUUID(String csarUUID) {
+ componentMetadataDefinition.getMetadataDataDefinition().setCsarUUID(csarUUID);
+ }
+
+ public String getCsarVersion() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getCsarVersion();
+ }
+
+ public void setCsarVersion(String csarVersion) {
+ componentMetadataDefinition.getMetadataDataDefinition().setCsarVersion(csarVersion);
+ }
+
+ public String getImportedToscaChecksum() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getImportedToscaChecksum();
+ }
+
+ public void setImportedToscaChecksum(String importedToscaChecksum) {
+ componentMetadataDefinition.getMetadataDataDefinition().setImportedToscaChecksum(importedToscaChecksum);
+ }
+
+ public String getInvariantUUID() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getInvariantUUID();
+ }
+
+ public void setInvariantUUID(String invariantUUID) {
+ componentMetadataDefinition.getMetadataDataDefinition().setInvariantUUID(invariantUUID);
+ }
+
+ public Optional<ComponentInstance> getComponentInstanceById(String id) {
+ return getComponentInstanceByPredicate(instance -> id.equals(instance.getUniqueId()));
+ }
+
+ public Optional<ComponentInstance> getComponentInstanceByName(String name) {
+ return getComponentInstanceByPredicate(instance -> name.equals(instance.getName()));
+ }
+
+ private Optional<ComponentInstance> getComponentInstanceByPredicate(Predicate<ComponentInstance> predicate) {
+ if (componentInstances == null) {
+ return Optional.empty();
+ }
+ return componentInstances.stream().filter(predicate).findFirst();
+ }
+
+ public List<GroupDefinition> getGroups() {
+ return groups;
+ }
+
+ public List<GroupDefinition> safeGetGroups() {
+ return groups == null ? emptyList() : groups;
+ }
+
+ public Optional<GroupDefinition> getGroupById(String id) {
+ return getGroupByPredicate(group -> group.getUniqueId().equals(id));
+ }
+
+ public Optional<GroupDefinition> getGroupByInvariantName(String name) {
+ return getGroupByPredicate(group -> name.equals(group.getInvariantName()));
+ }
+
+ public boolean containsGroupWithInvariantName(String invariantName) {
+ return groups != null && groups.stream().anyMatch(gr -> invariantName.equals(gr.getInvariantName()));
+ }
+
+ private Optional<GroupDefinition> getGroupByPredicate(Predicate<GroupDefinition> predicate) {
+ if (groups == null) {
+ return Optional.empty();
+ }
+ return groups.stream()
+ .filter(predicate)
+ .findAny();
+ }
+
+ public void setGroups(List<GroupDefinition> groups) {
+ this.groups = groups;
+ }
+
+ public void addGroups(List<GroupDefinition> groupsToAdd) {
+ if (groups == null) {
+ groups = new ArrayList<>();
+ }
+ groups.addAll(groupsToAdd);
+ }
+
+ public Map<String, PolicyDefinition> getPolicies() {
+ return policies;
+ }
+
+ public void setPolicies(Map<String, PolicyDefinition> policies) {
+ this.policies = policies;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((artifacts == null) ? 0 : artifacts.hashCode());
+ result = prime * result + ((categories == null) ? 0 : categories.hashCode());
+ result = prime * result + ((componentMetadataDefinition == null) ? 0 : componentMetadataDefinition.hashCode());
+ result = prime * result + ((deploymentArtifacts == null) ? 0 : deploymentArtifacts.hashCode());
+ result = prime * result + ((capabilities == null) ? 0 : capabilities.hashCode());
+ result = prime * result + ((requirements == null) ? 0 : requirements.hashCode());
+ result = prime * result + ((componentInstances == null) ? 0 : componentInstances.hashCode());
+ result = prime * result
+ + ((componentInstancesProperties == null) ? 0 : componentInstancesProperties.hashCode());
+ result = prime * result
+ + ((componentInstancesAttributes == null) ? 0 : componentInstancesAttributes.hashCode());
+ result = prime * result + ((componentInstancesInputs == null) ? 0 : componentInstancesInputs.hashCode());
+ result = prime * result + ((componentInstancesRelations == null) ? 0 : componentInstancesRelations.hashCode());
+ result = prime * result + ((groups == null) ? 0 : groups.hashCode());
+ result = prime * result + ((policies == null) ? 0 : policies.hashCode());
+ result = prime * result + ((derivedFromGenericType == null) ? 0 : derivedFromGenericType.hashCode());
+ result = prime * result + ((derivedFromGenericVersion == null) ? 0 : derivedFromGenericVersion.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ Component other = (Component) obj;
+ if (artifacts == null) {
+ if (other.artifacts != null) {
+ return false;
+ }
+ }
+ else if (!artifacts.equals(other.artifacts)) {
+ return false;
+ }
+ if (categories == null) {
+ if (other.categories != null) {
+ return false;
+ }
+ }
+ else if (!categories.equals(other.categories)) {
+ return false;
+ }
+ if (componentMetadataDefinition == null) {
+ if (other.componentMetadataDefinition != null) {
+ return false;
+ }
+ }
+ else if (!componentMetadataDefinition.equals(other.componentMetadataDefinition)) {
+ return false;
+ }
+
+ if (deploymentArtifacts == null) {
+ if (other.deploymentArtifacts != null) {
+ return false;
+ }
+ }
+ else if (!deploymentArtifacts.equals(other.deploymentArtifacts)) {
+ return false;
+ }
+
+ if (componentInstances == null) {
+ if (other.componentInstances != null) {
+ return false;
+ }
+ }
+ else if (!componentInstances.equals(other.componentInstances)) {
+ return false;
+ }
+ if (componentInstancesProperties == null) {
+ if (other.componentInstancesProperties != null) {
+ return false;
+ }
+ }
+ else if (!componentInstancesProperties.equals(other.componentInstancesProperties)) {
+ return false;
+ }
+
+ if (!Objects.equals(componentInstancesAttributes, other.componentInstancesAttributes)) {
+ return false;
+ }
+ if (!Objects.equals(componentInstancesInputs, other.componentInstancesInputs)) {
+ return false;
+ }
+ if (componentInstancesRelations == null) {
+ if (other.componentInstancesRelations != null) {
+ return false;
+ }
+ }
+ else if (!componentInstancesRelations.equals(other.componentInstancesRelations)) {
+ return false;
+ }
+ if (requirements == null) {
+ if (other.requirements != null) {
+ return false;
+ }
+ }
+ else if (!requirements.equals(other.requirements)) {
+ return false;
+ }
+ if (capabilities == null) {
+ if (other.capabilities != null) {
+ return false;
+ }
+ }
+ else if (!capabilities.equals(other.capabilities)) {
+ return false;
+ }
+ if (groups == null) {
+ if (other.groups != null) {
+ return false;
+ }
+ }
+ else if (!groups.equals(other.groups)) {
+ return false;
+ }
+ if (policies == null) {
+ if (other.policies != null) {
+ return false;
+ }
+ }
+ else if (!policies.equals(other.policies)) {
+ return false;
+ }
+ if (derivedFromGenericType == null) {
+ if (other.derivedFromGenericType != null) {
+ return false;
+ }
+ }
+ else if (!derivedFromGenericType.equals(other.derivedFromGenericType)) {
+ return false;
+ }
+ if (derivedFromGenericVersion == null) {
+ if (other.derivedFromGenericVersion != null) {
+ return false;
+ }
+ }
+ else if (!derivedFromGenericVersion.equals(other.derivedFromGenericVersion)) {
+ return false;
+ }
+ return true;
+ }
+
+ public void addCategory(String category, String subCategory) {
+ if (category != null || subCategory != null) {
+ if (categories == null) {
+ categories = new ArrayList<>();
+ }
+ CategoryDefinition selectedCategory = null;
+ for (CategoryDefinition categoryDef : categories) {
+ if (categoryDef.getName().equals(category)) {
+ selectedCategory = categoryDef;
+ }
+ }
+ if (selectedCategory == null) {
+ selectedCategory = new CategoryDefinition();
+ selectedCategory.setName(category);
+ categories.add(selectedCategory);
+ }
+ List<SubCategoryDefinition> subcategories = selectedCategory.getSubcategories();
+ if (subcategories == null) {
+ subcategories = new ArrayList<>();
+ selectedCategory.setSubcategories(subcategories);
+ }
+ SubCategoryDefinition selectedSubcategory = null;
+ for (SubCategoryDefinition subcategory : subcategories) {
+ if (subcategory.getName().equals(subCategory)) {
+ selectedSubcategory = subcategory;
+ }
+ }
+ if (selectedSubcategory == null) {
+ selectedSubcategory = new SubCategoryDefinition();
+ selectedSubcategory.setName(subCategory);
+ subcategories.add(selectedSubcategory);
+ }
+ }
+ }
+
+ public void addCategory(CategoryDefinition category) {
+ addCategory(category, null);
+ }
+
+ public void addCategory(CategoryDefinition category, SubCategoryDefinition subCategory) {
+ if (categories == null) {
+ categories = new ArrayList<>();
+ }
+ boolean foundCat = false;
+ for (CategoryDefinition cat : categories) {
+ if (cat.getName().equals(category.getName())) {
+ foundCat = true;
+ if (subCategory != null) {
+ List<SubCategoryDefinition> subcategories = cat.getSubcategories();
+ if (subcategories == null) {
+ subcategories = new ArrayList<>();
+ cat.setSubcategories(subcategories);
+ }
+ for (SubCategoryDefinition subcat : subcategories) {
+ boolean foundSub = false;
+ if (subcat.getName().equals(subCategory.getName())) {
+ foundSub = true;
+ }
+ if (!foundSub) {
+ subcategories.add(subCategory);
+ break;
+ }
+ }
+ }
+ }
+ }
+ if (!foundCat) {
+ if (subCategory != null) {
+ category.addSubCategory(subCategory);
+ }
+ categories.add(category);
+ }
+ }
+
+ public Map<String, List<ComponentInstanceProperty>> getComponentInstancesAttributes() {
+ return componentInstancesAttributes;
+ }
+
+ public void setComponentInstancesAttributes(
+ Map<String, List<ComponentInstanceProperty>> componentInstancesAttributes) {
+ this.componentInstancesAttributes = componentInstancesAttributes;
+ }
+
+ public Map<String, List<ComponentInstanceInput>> getComponentInstancesInputs() {
+ return componentInstancesInputs;
+ }
+
+ public Map<String, List<PropertyDataDefinition>> safeGetGroupsProperties() {
+ if (isEmpty(groups)) {
+ return emptyMap();
+ }
+ return groups.stream()
+ .filter(gr -> Objects.nonNull(gr.getProperties()))
+ .collect(toMap(GroupDataDefinition::getUniqueId,
+ GroupDataDefinition::getProperties));
+ }
+
+ public Map<String, List<PropertyDataDefinition>> safeGetPolicyProperties() {
+ if (isEmpty(policies)) {
+ return emptyMap();
+ }
+ return policies.values()
+ .stream()
+ .filter(policy -> Objects.nonNull(policy.getProperties()))
+ .collect(toMap(PolicyDataDefinition::getUniqueId,
+ PolicyDataDefinition::getProperties));
+ }
+
+ public List<ComponentInstanceInput> safeGetComponentInstanceInputsByName(String cmptInstanceName) {
+ List<ComponentInstanceInput> emptyPropsList = emptyList();
+ if (this.componentInstancesInputs == null) {
+ return emptyPropsList;
+ }
+ return this.componentInstances.stream()
+ .filter(ci -> ci.getName().equals(cmptInstanceName))
+ .map(ComponentInstance::getUniqueId)
+ .map(instanceId -> safeGetComponentInstanceEntity(instanceId, this.componentInstancesInputs))
+ .findAny()
+ .orElse(emptyPropsList);
+ }
+
+ private <T> List<T> safeGetComponentInstanceEntity(String cmptInstanceId, Map<String, List<T>> instanceEntities) {
+ List<T> emptyPropsList = emptyList();
+ if (instanceEntities == null) {
+ return emptyPropsList;
+ }
+ List<T> cmptInstanceProps = instanceEntities.get(cmptInstanceId);
+ return cmptInstanceProps == null ? emptyPropsList : cmptInstanceProps;
+ }
+
+
+ public void setComponentInstancesInputs(Map<String, List<ComponentInstanceInput>> componentInstancesInputs) {
+ this.componentInstancesInputs = componentInstancesInputs;
+ }
+
+ public void setSpecificComponetTypeArtifacts(Map<String, ArtifactDefinition> specificComponentTypeArtifacts) {
+ // Implement where needed
+ }
+
+ public void setMetadataDefinition(ComponentMetadataDefinition metadataDefinition) {
+ this.componentMetadataDefinition = metadataDefinition;
+ }
+
+ public String fetchGenericTypeToscaNameFromConfig() {
+ // Implement where needed
+ return ConfigurationManager.getConfigurationManager()
+ .getConfiguration()
+ .getGenericAssetNodeTypes()
+ .get(this.assetType());
+ }
+
+ public String assetType() {
+ // Implement where needed
+ return this.getComponentType().getValue();
+ }
+
+ public boolean shouldGenerateInputs() {
+ // Implement where needed
+ return true;
+ }
+
+ public boolean deriveFromGeneric() {
+ // Implement where needed
+ return true;
+ }
+
+ public void setDerivedFromGenericInfo(Resource genericType) {
+ derivedFromGenericType = genericType.getToscaResourceName();
+ derivedFromGenericVersion = genericType.getVersion();
+ }
+
+ public boolean isTopologyTemplate() {
+ return ToscaElementTypeEnum.TOPOLOGY_TEMPLATE.getValue().equals(toscaType);
+ }
+
+ public String getToscaType() {
+ return toscaType;
+ }
+
+ public void setToscaType(String toscaType) {
+ this.toscaType = toscaType;
+ }
+
+ public List<AdditionalInformationDefinition> getAdditionalInformation() {
+ return additionalInformation;
+ }
+
+ public void setAdditionalInformation(List<AdditionalInformationDefinition> additionalInformation) {
+ this.additionalInformation = additionalInformation;
+ }
+
+ public PolicyDefinition getPolicyById(String id) {
+ return policies != null ? policies.get(id) : null;
+ }
+
+ public List<PolicyDefinition> resolvePoliciesList() {
+ if (policies == null) {
+ return emptyList();
+ }
+ return new ArrayList<>(policies.values());
+ }
+
+ public List<PolicyDefinition> resolvePoliciesContainingTarget(String targetId, PolicyTargetType targetType) {
+ Predicate<PolicyDefinition> containsTarget = policy -> policy.containsTarget(targetId, targetType);
+ return resolvePoliciesByPredicate(containsTarget);
+ }
+
+ private List<PolicyDefinition> resolvePoliciesByPredicate(Predicate<PolicyDefinition> policyPredicate) {
+ if (policies == null) {
+ return emptyList();
+ }
+ return policies.values().stream()
+ .filter(policyPredicate)
+ .collect(Collectors.toList());
+ }
+
+ public List<GroupDefinition> resolveGroupsByMember(String instanceId) {
+ if (groups == null) {
+ return emptyList();
+ }
+ return groups.stream()
+ .filter(group -> group.containsInstanceAsMember(instanceId))
+ .collect(Collectors.toList());
+ }
+
+ public String getActualComponentType() {
+ return componentMetadataDefinition.getMetadataDataDefinition().getActualComponentType();
+ }
+
+ public Boolean isArchived() { return componentMetadataDefinition.getMetadataDataDefinition().isArchived(); }
+
+ public void setArchived(Boolean archived) { componentMetadataDefinition.getMetadataDataDefinition().setArchived(archived); }
+
+ public Long getArchiveTime() { return componentMetadataDefinition.getMetadataDataDefinition().getArchiveTime(); }
+
+ public void setArchiveTime(Long archiveTime) { componentMetadataDefinition.getMetadataDataDefinition().setArchiveTime(archiveTime); }
+
+ public Boolean isVspArchived() { return componentMetadataDefinition.getMetadataDataDefinition().isVspArchived(); }
+
+ public void setVspArchived(Boolean vspArchived) { componentMetadataDefinition.getMetadataDataDefinition().setVspArchived(vspArchived); }
}