diff options
Diffstat (limited to 'sdc-tosca/src/main/java/org/onap/sdc/tosca/parser/elements/EntityDetails.java')
-rw-r--r-- | sdc-tosca/src/main/java/org/onap/sdc/tosca/parser/elements/EntityDetails.java | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/sdc-tosca/src/main/java/org/onap/sdc/tosca/parser/elements/EntityDetails.java b/sdc-tosca/src/main/java/org/onap/sdc/tosca/parser/elements/EntityDetails.java index 6054ac9..afdb90e 100644 --- a/sdc-tosca/src/main/java/org/onap/sdc/tosca/parser/elements/EntityDetails.java +++ b/sdc-tosca/src/main/java/org/onap/sdc/tosca/parser/elements/EntityDetails.java @@ -22,21 +22,22 @@ package org.onap.sdc.tosca.parser.elements; import org.onap.sdc.tosca.parser.api.IEntityDetails; import org.onap.sdc.tosca.parser.enums.EntityTemplateType; -import org.onap.sdc.toscaparser.api.CapabilityAssignment; -import org.onap.sdc.toscaparser.api.EntityTemplate; -import org.onap.sdc.toscaparser.api.Property; -import org.onap.sdc.toscaparser.api.RequirementAssignment; +import org.onap.sdc.tosca.parser.enums.SdcTypes; +import org.onap.sdc.toscaparser.api.*; import org.onap.sdc.toscaparser.api.parameters.Input; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; + +import static java.util.stream.Collectors.toList; public abstract class EntityDetails implements IEntityDetails { private final EntityTemplate entityTemplate; private final IEntityDetails parentNodeTemplate; + private static final String TYPE = "type"; EntityDetails(EntityTemplate entityTemplate) { this.entityTemplate = entityTemplate; @@ -48,7 +49,7 @@ public abstract class EntityDetails implements IEntityDetails { return entityTemplate.getName(); } - public EntityTemplate getEntityTemplate() { + EntityTemplate getEntityTemplate() { return entityTemplate; } @@ -118,6 +119,21 @@ public abstract class EntityDetails implements IEntityDetails { return Collections.emptyList(); } + @Override + public List<IEntityDetails> getMemberNodesCVFCWithVFC() { + return getMemberNodes().stream() + .filter(m -> SdcTypes.CVFC.getValue().equals(m.getMetadata().getValue(TYPE))) + .filter(this::isCvfcsWithVfc) + .distinct() + .collect(toList()); + } - + private boolean isCvfcsWithVfc(IEntityDetails member) { + List<NodeTemplate> children =((NodeTemplate) ((NodeTemplateEntityDetails)member).getEntityTemplate()) + .getSubMappingToscaTemplate().getNodeTemplates(); + List<NodeTemplate> vfcChildren = children.stream() + .filter(c -> SdcTypes.VFC.getValue().equals(c.getMetaData().getValue(TYPE))) + .collect(toList()); + return !vfcChildren.isEmpty(); + } } |