diff options
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.java | 109 |
1 files changed, 81 insertions, 28 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 5760e0b11b..d3bdfede42 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 @@ -20,23 +20,25 @@ package org.openecomp.sdc.be.model; -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 java.util.stream.Collectors; - -import org.codehaus.jackson.annotate.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonIgnore; import org.openecomp.sdc.be.config.ConfigurationManager; +import org.openecomp.sdc.be.dao.utils.MapUtil; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; 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.util.stream.Collectors; +import static java.util.Collections.emptyList; +import org.openecomp.sdc.be.dao.utils.MapUtil; +import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElementTypeEnum; +import org.openecomp.sdc.common.api.ArtifactTypeEnum; + +import java.io.Serializable; +import java.util.*; +import java.util.stream.Collectors; + public abstract class Component implements Serializable { /** @@ -48,27 +50,17 @@ public abstract class Component implements Serializable { 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; @@ -344,16 +336,22 @@ public abstract class Component implements Serializable { 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.EMPTY_MAP; + 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.EMPTY_MAP; + return instanceInformationalArtifacts != null ? instanceInformationalArtifacts : Collections.emptyMap(); } public List<ArtifactDefinition> safeGetComponentInstanceHeatArtifacts(String componentInstanceId) { @@ -362,7 +360,7 @@ public abstract class Component implements Serializable { .stream() .filter(artifact -> artifact.getArtifactType() != null && artifact.getArtifactType().equals(ArtifactTypeEnum.HEAT_ENV.name())) .collect(Collectors.toList()); - return instanceHeatEnvArtifacts == null ? Collections.EMPTY_LIST : instanceHeatEnvArtifacts; + return instanceHeatEnvArtifacts == null ? emptyList() : instanceHeatEnvArtifacts; } public void setComponentInstances(List<ComponentInstance> resourceInstances) { @@ -443,16 +441,31 @@ public abstract class Component implements Serializable { } 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() { @@ -476,6 +489,7 @@ public abstract class Component implements Serializable { 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; @@ -567,6 +581,11 @@ public abstract class Component implements Serializable { 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; @@ -668,7 +687,7 @@ public abstract class Component implements Serializable { } public List<ComponentInstanceInput> safeGetComponentInstanceInputsByName(String cmptInstanceName) { - List<ComponentInstanceInput> emptyPropsList = Collections.emptyList(); + List<ComponentInstanceInput> emptyPropsList = emptyList(); if (this.componentInstancesInputs == null) { return emptyPropsList; } @@ -681,7 +700,7 @@ public abstract class Component implements Serializable { } private <T> List<T> safeGetComponentInstanceEntity(String cmptInstanceId, Map<String, List<T>> instanceEntities) { - List<T> emptyPropsList = Collections.emptyList(); + List<T> emptyPropsList = emptyList(); if (instanceEntities == null) { return emptyPropsList; } @@ -728,6 +747,10 @@ public abstract class Component implements Serializable { derivedFromGenericVersion = genericType.getVersion(); } + public boolean isTopologyTemplate() { + return ToscaElementTypeEnum.TopologyTemplate.getValue().equals(toscaType); + } + public String getToscaType() { return toscaType; } @@ -735,6 +758,7 @@ public abstract class Component implements Serializable { public void setToscaType(String toscaType) { this.toscaType = toscaType; } + public List<AdditionalInformationDefinition> getAdditionalInformation() { return additionalInformation; } @@ -742,5 +766,34 @@ public abstract class Component implements Serializable { 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)) + .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()); + } + } |