From 10c11e142feb1d040612fed695aaf76d007294da Mon Sep 17 00:00:00 2001 From: liamfallon Date: Fri, 14 Jun 2019 07:38:26 +0000 Subject: Allow multiple versions of entities to be returned Fix .gitreviw file to point at "master" rather than "dublin" Allow return of multiple versions of policy types and data types in TOSCA service templates and multiple policies in TOSCA topology templates. Because the return type is a list of singleton maps, utility methods were added to return flat maps of poliicy types, data types, and policies keyed by a compound ToscaEntityKey name/version key. Issue-ID: POLICY-1807 Change-Id: I355038aaca26f41064d0e3cb3b45b1de2294cf5f Signed-off-by: liamfallon --- .../org/onap/policy/models/base/PfConceptContainer.java | 14 ++++++++++---- .../onap/policy/models/base/PfConceptContainerTest.java | 6 +++--- 2 files changed, 13 insertions(+), 7 deletions(-) (limited to 'models-base') diff --git a/models-base/src/main/java/org/onap/policy/models/base/PfConceptContainer.java b/models-base/src/main/java/org/onap/policy/models/base/PfConceptContainer.java index 2576aab0a..99b5f9710 100644 --- a/models-base/src/main/java/org/onap/policy/models/base/PfConceptContainer.java +++ b/models-base/src/main/java/org/onap/policy/models/base/PfConceptContainer.java @@ -126,16 +126,22 @@ public class PfConceptContainer ex @Override public List> toAuthorative() { - Map toscaPolicyMap = new LinkedHashMap<>(); + // The returned list is a list of map singletons with one map for each map + // entry in the concept container + List> toscaPolicyMapList = new ArrayList<>(); for (Entry conceptEntry : getConceptMap().entrySet()) { + // Create a map to hold this entry + Map toscaPolicyMap = new LinkedHashMap<>(1); + + // Add the concept container entry to the singleton map @SuppressWarnings("unchecked") PfAuthorative authoritiveImpl = (PfAuthorative) conceptEntry.getValue(); toscaPolicyMap.put(conceptEntry.getKey().getName(), authoritiveImpl.toAuthorative()); - } - List> toscaPolicyMapList = new ArrayList<>(); - toscaPolicyMapList.add(toscaPolicyMap); + // Add the map to the returned list + toscaPolicyMapList.add(toscaPolicyMap); + } return toscaPolicyMapList; } diff --git a/models-base/src/test/java/org/onap/policy/models/base/PfConceptContainerTest.java b/models-base/src/test/java/org/onap/policy/models/base/PfConceptContainerTest.java index 44ec51019..4ad7c0f9e 100644 --- a/models-base/src/test/java/org/onap/policy/models/base/PfConceptContainerTest.java +++ b/models-base/src/test/java/org/onap/policy/models/base/PfConceptContainerTest.java @@ -213,9 +213,9 @@ public class PfConceptContainerTest { List> outMapList = container.toAuthorative(); - assertEquals(dacMap.get("name0"), outMapList.get(0).get("name0")); - assertEquals(dacMap.get("name1").getDescription(), outMapList.get(0).get("NULL").getDescription()); - assertEquals(dacMap.get("name2"), outMapList.get(0).get("name2")); + assertEquals(dacMap.get("name1"), outMapList.get(0).get("NULL")); + assertEquals(dacMap.get("name0").getDescription(), outMapList.get(1).get("name0").getDescription()); + assertEquals(dacMap.get("name2"), outMapList.get(2).get("name2")); DummyBadPfConceptContainer badContainer = new DummyBadPfConceptContainer(); assertThatThrownBy(() -> { -- cgit 1.2.3-korg