diff options
Diffstat (limited to 'src/main/java/org/onap/sdc/tosca/parser/elements/PolicyEntityDetails.java')
-rw-r--r-- | src/main/java/org/onap/sdc/tosca/parser/elements/PolicyEntityDetails.java | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/src/main/java/org/onap/sdc/tosca/parser/elements/PolicyEntityDetails.java b/src/main/java/org/onap/sdc/tosca/parser/elements/PolicyEntityDetails.java index 39027c3..7b97175 100644 --- a/src/main/java/org/onap/sdc/tosca/parser/elements/PolicyEntityDetails.java +++ b/src/main/java/org/onap/sdc/tosca/parser/elements/PolicyEntityDetails.java @@ -1,17 +1,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.EntityTemplate; -import org.onap.sdc.toscaparser.api.NodeTemplate; import org.onap.sdc.toscaparser.api.Policy; import org.onap.sdc.toscaparser.api.elements.Metadata; +import java.util.List; +import java.util.stream.Collectors; + public class PolicyEntityDetails extends EntityDetails { + private static final String NODE_TEMPLATES_TARGET_TYPE = "node_templates"; + private final Policy policy; - PolicyEntityDetails(EntityTemplate entityTemplate, NodeTemplate parentNode) { - super(entityTemplate, parentNode); + PolicyEntityDetails(EntityTemplate entityTemplate) { + super(entityTemplate); policy = (Policy)getEntityTemplate(); } @@ -24,4 +29,26 @@ public class PolicyEntityDetails extends EntityDetails { public Metadata getMetadata() { return policy.getMetaDataObj(); } + + @Override + public List<String> getTargets() { + if (policy.getTargets() != null) { + return policy.getTargets(); + } + return super.getTargets(); + } + + @Override + public List<IEntityDetails> getTargetNodes() { + if (policy.getTargetsType().equals(NODE_TEMPLATES_TARGET_TYPE)) { + return policy.getTargetsList() + .stream() + .map(o->EntityDetailsFactory.createEntityDetails(EntityTemplateType.NODE_TEMPLATE, (EntityTemplate)o)) + .collect(Collectors.toList()); + } + return policy.getTargetsList() + .stream() + .map(o->EntityDetailsFactory.createEntityDetails(EntityTemplateType.GROUP, (EntityTemplate)o)) + .collect(Collectors.toList()); + } } |