From 8e4f8425e2a0bb7a9e6cadf48537bc93d4680e25 Mon Sep 17 00:00:00 2001 From: "Manzon, Inna (im453s)" Date: Tue, 22 Jan 2019 10:45:12 +0200 Subject: Fix NPE, add getters to IEntityDetails Change-Id: Ia150f003fade5a276d785b2be90a8d9f63ab9f4e Issue-ID: SDC-2057 Signed-off-by: Manzon, Inna (im453s) --- .../onap/sdc/tosca/parser/api/IEntityDetails.java | 15 +++++++++++-- .../onap/sdc/tosca/parser/api/ISdcCsarHelper.java | 2 +- .../sdc/tosca/parser/elements/EntityDetails.java | 10 ++++++++- .../tosca/parser/elements/GroupEntityDetails.java | 10 ++++++++- .../parser/elements/NodeTemplateEntityDetails.java | 2 +- .../tosca/parser/elements/PolicyEntityDetails.java | 4 ++-- .../sdc/tosca/parser/impl/SdcCsarHelperImpl.java | 25 ++++++++++++++-------- 7 files changed, 51 insertions(+), 17 deletions(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/onap/sdc/tosca/parser/api/IEntityDetails.java b/src/main/java/org/onap/sdc/tosca/parser/api/IEntityDetails.java index c4393cc..15bff9c 100644 --- a/src/main/java/org/onap/sdc/tosca/parser/api/IEntityDetails.java +++ b/src/main/java/org/onap/sdc/tosca/parser/api/IEntityDetails.java @@ -14,13 +14,18 @@ public interface IEntityDetails { * Retrieves entity instance template type. * @return {@link EntityTemplateType} enum entry describing given object type */ - EntityTemplateType getType(); + EntityTemplateType getEntityType(); /** * Retrieves entity instance name */ String getName(); + /** + * Retrieves entity Tosca type + */ + String getToscaType(); + /** * Retrieves entity {@link Metadata} object */ @@ -32,6 +37,12 @@ public interface IEntityDetails { */ Map getProperties(); + /** + * Retrieves member names of the entity instance + * @return List of member names + */ + List getMembers(); + /** * Retrieves member nodes of the entity instance * @return List of member nodes entity objects @@ -72,5 +83,5 @@ public interface IEntityDetails { /** * Retrieves list of policy target entity instances (groups or node templates) */ - List getTargetNodes(); + List getTargetEntities(); } \ No newline at end of file diff --git a/src/main/java/org/onap/sdc/tosca/parser/api/ISdcCsarHelper.java b/src/main/java/org/onap/sdc/tosca/parser/api/ISdcCsarHelper.java index 129f7b4..12edd55 100644 --- a/src/main/java/org/onap/sdc/tosca/parser/api/ISdcCsarHelper.java +++ b/src/main/java/org/onap/sdc/tosca/parser/api/ISdcCsarHelper.java @@ -665,7 +665,7 @@ public interface ISdcCsarHelper { * SDC (node template) type, tosca type as well as optional customizationUUID and UUID * @param topologyTemplateQuery parameters of the topology template containing the above entity. * Includes SDC type of the container and optional customizationUUID - * @param isRecursive indicates if the search within the required topology template is recursive. + * @param isRecursive indicates if the search is recursive starting from the required topology template . * @return list of @{@link IEntityDetails} objects containing information about the found entities. * If either no entities found or the provided query is incorrect, an empty list is returned */ diff --git a/src/main/java/org/onap/sdc/tosca/parser/elements/EntityDetails.java b/src/main/java/org/onap/sdc/tosca/parser/elements/EntityDetails.java index 2567700..82e6fc6 100644 --- a/src/main/java/org/onap/sdc/tosca/parser/elements/EntityDetails.java +++ b/src/main/java/org/onap/sdc/tosca/parser/elements/EntityDetails.java @@ -68,7 +68,7 @@ public abstract class EntityDetails implements IEntityDetails { } @Override - public List getTargetNodes() { + public List getTargetEntities() { return Collections.emptyList(); } @@ -87,6 +87,14 @@ public abstract class EntityDetails implements IEntityDetails { return pathBld.toString(); } + @Override + public String getToscaType() { + return entityTemplate.getType(); + } + + @Override + public List getMembers() { return Collections.emptyList(); } + } diff --git a/src/main/java/org/onap/sdc/tosca/parser/elements/GroupEntityDetails.java b/src/main/java/org/onap/sdc/tosca/parser/elements/GroupEntityDetails.java index 32a91aa..2777ab5 100644 --- a/src/main/java/org/onap/sdc/tosca/parser/elements/GroupEntityDetails.java +++ b/src/main/java/org/onap/sdc/tosca/parser/elements/GroupEntityDetails.java @@ -29,7 +29,7 @@ public class GroupEntityDetails extends EntityDetails { } @Override - public EntityTemplateType getType() { + public EntityTemplateType getEntityType() { return EntityTemplateType.GROUP; } @@ -42,4 +42,12 @@ public class GroupEntityDetails extends EntityDetails { public Metadata getMetadata() { return group.getMetadata(); } + + @Override + public List getMembers() { + if (group.getMembers() != null) { + return group.getMembers(); + } + return super.getMembers(); + } } diff --git a/src/main/java/org/onap/sdc/tosca/parser/elements/NodeTemplateEntityDetails.java b/src/main/java/org/onap/sdc/tosca/parser/elements/NodeTemplateEntityDetails.java index ad3b1a0..5ee253d 100644 --- a/src/main/java/org/onap/sdc/tosca/parser/elements/NodeTemplateEntityDetails.java +++ b/src/main/java/org/onap/sdc/tosca/parser/elements/NodeTemplateEntityDetails.java @@ -15,7 +15,7 @@ public class NodeTemplateEntityDetails extends EntityDetails { } @Override - public EntityTemplateType getType() { + public EntityTemplateType getEntityType() { return EntityTemplateType.NODE_TEMPLATE; } 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 7b97175..ab792d1 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 @@ -21,7 +21,7 @@ public class PolicyEntityDetails extends EntityDetails { } @Override - public EntityTemplateType getType() { + public EntityTemplateType getEntityType() { return EntityTemplateType.POLICY; } @@ -39,7 +39,7 @@ public class PolicyEntityDetails extends EntityDetails { } @Override - public List getTargetNodes() { + public List getTargetEntities() { if (policy.getTargetsType().equals(NODE_TEMPLATES_TARGET_TYPE)) { return policy.getTargetsList() .stream() diff --git a/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java b/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java index 1ae3471..01c72d4 100644 --- a/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java +++ b/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java @@ -130,15 +130,22 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper { @Override public List getPolicyTargetsFromOrigin(NodeTemplate nodeTemplate, String policyName) { - Optional policyOpt = null; if(StringUtils.isNotEmpty(nodeTemplate.getName())){ - policyOpt = getNodeTemplateByName(nodeTemplate.getName()).getOriginComponentTemplate().getPolicies().stream().filter(p -> p.getName().equals(policyName)).findFirst(); - } - if(policyOpt.isPresent()){ - List targets = policyOpt.get().getTargets(); - return nodeTemplate.getOriginComponentTemplate().getNodeTemplates() - .stream() - .filter(nt -> targets.contains(nt.getName())).collect(Collectors.toList()); + Optional policyOpt = getNodeTemplateByName(nodeTemplate.getName()) + .getOriginComponentTemplate() + .getPolicies() + .stream() + .filter(p -> p.getName() + .equals(policyName)) + .findFirst(); + if(policyOpt.isPresent()){ + List targets = policyOpt.get().getTargets(); + if (targets != null) { + return nodeTemplate.getOriginComponentTemplate().getNodeTemplates() + .stream() + .filter(nt -> targets.contains(nt.getName())).collect(Collectors.toList()); + } + } } return new ArrayList<>(); } @@ -178,7 +185,7 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper { return new ArrayList<>(); return toscaTemplate.getPolicies() .stream() - .filter(p -> p.getTargets().contains(nodeTemplateName)) + .filter(p -> p.getTargets()!= null && p.getTargets().contains(nodeTemplateName)) .collect(toList()); } -- cgit 1.2.3-korg