diff options
Diffstat (limited to 'cps-service/src/main/java/org')
-rw-r--r-- | cps-service/src/main/java/org/onap/cps/spi/model/DataNodeBuilder.java | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/cps-service/src/main/java/org/onap/cps/spi/model/DataNodeBuilder.java b/cps-service/src/main/java/org/onap/cps/spi/model/DataNodeBuilder.java index 253d4c6242..6530e724e9 100644 --- a/cps-service/src/main/java/org/onap/cps/spi/model/DataNodeBuilder.java +++ b/cps-service/src/main/java/org/onap/cps/spi/model/DataNodeBuilder.java @@ -119,6 +119,19 @@ public class DataNodeBuilder { } } + /** + * To build a {@link Collection} of {@link DataNode} objects. + * + * @return {@link DataNode} {@link Collection} + */ + public Collection<DataNode> buildCollection() { + if (normalizedNodeTree != null) { + return buildCollectionFromNormalizedNodeTree(); + } else { + return ImmutableSet.of(buildFromAttributes()); + } + } + private DataNode buildFromAttributes() { final var dataNode = new DataNode(); dataNode.setXpath(xpath); @@ -128,9 +141,14 @@ public class DataNodeBuilder { } private DataNode buildFromNormalizedNodeTree() { + final Collection<DataNode> dataNodeCollection = buildCollectionFromNormalizedNodeTree(); + return dataNodeCollection.iterator().next(); + } + + private Collection<DataNode> buildCollectionFromNormalizedNodeTree() { final var parentDataNode = new DataNodeBuilder().withXpath(parentNodeXpath).build(); addDataNodeFromNormalizedNode(parentDataNode, normalizedNodeTree); - return parentDataNode.getChildDataNodes().iterator().next(); + return parentDataNode.getChildDataNodes(); } private static void addDataNodeFromNormalizedNode(final DataNode currentDataNode, |