summaryrefslogtreecommitdiffstats
path: root/cps-service/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'cps-service/src/main')
-rw-r--r--cps-service/src/main/java/org/onap/cps/spi/model/DataNodeBuilder.java20
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 253d4c624..6530e724e 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,