From d4cc2beaef58a4fc95bdc281efd879b1d1edf279 Mon Sep 17 00:00:00 2001 From: shiria Date: Thu, 5 Jul 2018 13:42:33 +0300 Subject: Fix node filter get methods Support normative properties and capabilities as regular get methods Issue-ID: SDC-1455 Change-Id: I1ab709a17a2e03f81a7ae789b8c8fb83a1d03e81 Signed-off-by: shiria --- .../onap/sdc/tosca/datatypes/model/NodeFilter.java | 91 +++++++++++++--------- 1 file changed, 55 insertions(+), 36 deletions(-) (limited to 'common/onap-tosca-datatype') diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/NodeFilter.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/NodeFilter.java index 5f3d46504d..2c95568a66 100644 --- a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/NodeFilter.java +++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/NodeFilter.java @@ -19,7 +19,8 @@ package org.onap.sdc.tosca.datatypes.model; import org.apache.commons.collections4.CollectionUtils; import org.onap.sdc.tosca.services.ToscaExtensionYamlUtil; -import java.util.Iterator; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -29,66 +30,84 @@ public class NodeFilter { private List>> properties; private List> capabilities; - //can't not be removed, in used in snake yaml public List> getCapabilities() { return capabilities; } public void setCapabilities(List> capabilities) { - this.capabilities = capabilities; + this.capabilities = getNormalizeCapabilities(capabilities); } - //can't not be removed, in used in snake yaml - public List>> getProperties() { - return properties; + public void setProperties(List>> properties) { + this.properties = getNormalizeProperties(properties); } - - //use this function in order to get node filter properties instead of getProperties function - public List>> getNormalizeProperties() { - return getNormalizeProperties(properties); + public List>> getProperties() { + return properties; } private List>> getNormalizeProperties(List>> properties) { - ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil(); if (CollectionUtils.isEmpty(properties)) { return properties; } - for (Map> propertyConstraintsEntity : properties) { - String propertyKey = propertyConstraintsEntity.keySet().iterator().next(); - List constraints = propertyConstraintsEntity.get(propertyKey); - Iterator iterator = constraints.iterator(); - while (iterator.hasNext()) { - Constraint constraintObj = iterator.next(); - Constraint constraint = toscaExtensionYamlUtil - .yamlToObject(toscaExtensionYamlUtil.objectToYaml(constraintObj), - Constraint.class); - constraints.remove(constraintObj); - constraints.add(constraint); - } + List>> normalizeProperties = new ArrayList<>(); + for (Map> propertyEntry : properties) { + Map> normalizePropertyEntry = getNormalizePropertyEntry(propertyEntry); + normalizeProperties.add(normalizePropertyEntry); } - return properties; + return normalizeProperties; + + } + + private Map> getNormalizePropertyEntry(Map> propertyEntry) { + Map> normalizePropertyEntry = new HashMap<>(); + String propertyKey = propertyEntry.keySet().iterator().next(); //only one entry exist in the map + List constraints = propertyEntry.get(propertyKey); + List normalizeConstraints = getNormalizeConstrains(constraints); + normalizePropertyEntry.put(propertyKey, normalizeConstraints); + return normalizePropertyEntry; } - //use this function in order to get node filter capabilities instead of getCapabilities function - public List> getNormalizeCapabilities() { + private List getNormalizeConstrains(List constraints) { ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil(); + List normalizeConstraints = new ArrayList<>(); + for (Object constraintObj : constraints) { + Constraint normalizeConstraint = toscaExtensionYamlUtil + .yamlToObject(toscaExtensionYamlUtil.objectToYaml(constraintObj), + Constraint.class); + normalizeConstraints.add(normalizeConstraint); + } + return normalizeConstraints; + } + + public List> getNormalizeCapabilities(List> capabilities) { if (CollectionUtils.isEmpty(capabilities)) { return capabilities; } + List> normalizeCapabilities = new ArrayList<>(); for (Map capabilityEntry : capabilities) { - String capabilityKey = capabilityEntry.keySet().iterator().next(); - Object capabilityFilterObj = capabilityEntry.get(capabilityKey); - CapabilityFilter capabilityFilter = toscaExtensionYamlUtil.yamlToObject( - toscaExtensionYamlUtil.objectToYaml(capabilityFilterObj), CapabilityFilter.class); - capabilityFilter.setProperties(getNormalizeProperties(capabilityFilter.getProperties())); - capabilityEntry.remove(capabilityKey); - capabilityEntry.put(capabilityKey, capabilityFilter); + Map normalizeCapabilityEntry = getNormalizeCapabilityEntry(capabilityEntry); + normalizeCapabilities.add(normalizeCapabilityEntry); } - return capabilities; + return normalizeCapabilities; } - public void setProperties(List>> properties) { - this.properties = properties; + private Map getNormalizeCapabilityEntry(Map capabilityEntry) { + Map normalizeCapabilityEntry = new HashMap<>(); + String capabilityKey = capabilityEntry.keySet().iterator().next(); //only one entry exist in the map + Object capabilityFilterObj = capabilityEntry.get(capabilityKey); + CapabilityFilter normalizeCapabilityFilter = getNormalizeCapabilityFilter(capabilityFilterObj); + normalizeCapabilityEntry.put(capabilityKey, normalizeCapabilityFilter); + return normalizeCapabilityEntry; + } + + + private CapabilityFilter getNormalizeCapabilityFilter(Object capabilityFilterObj) { + ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil(); + CapabilityFilter capabilityFilter = toscaExtensionYamlUtil.yamlToObject( + toscaExtensionYamlUtil.objectToYaml(capabilityFilterObj), CapabilityFilter.class); + capabilityFilter.setProperties(getNormalizeProperties(capabilityFilter.getProperties())); + + return capabilityFilter; } } -- cgit 1.2.3-korg