From 75a716328ab575ca81763f9b37285562ed6b8a58 Mon Sep 17 00:00:00 2001 From: emaclee Date: Tue, 24 May 2022 11:51:19 +0100 Subject: Add module name to cps core output - add withModuleName method - add getNodeIdentifierWithPrefix method - add unit test in DataMapUtilsSpec - add unit test in DataNodeBuilderSpec - fix all existing unit tests Issue-ID: CPS-870 Signed-off-by: emaclee Change-Id: I51b70fa2dd3381eef9500b4339d4922c017e3000 --- .../src/main/java/org/onap/cps/spi/model/DataNode.java | 1 + .../main/java/org/onap/cps/spi/model/DataNodeBuilder.java | 14 ++++++++++++++ .../src/main/java/org/onap/cps/utils/DataMapUtils.java | 11 +++++++++-- 3 files changed, 24 insertions(+), 2 deletions(-) (limited to 'cps-service/src/main') diff --git a/cps-service/src/main/java/org/onap/cps/spi/model/DataNode.java b/cps-service/src/main/java/org/onap/cps/spi/model/DataNode.java index 43aa06b81..d80306bae 100644 --- a/cps-service/src/main/java/org/onap/cps/spi/model/DataNode.java +++ b/cps-service/src/main/java/org/onap/cps/spi/model/DataNode.java @@ -42,6 +42,7 @@ public class DataNode { private String anchorName; private ModuleReference moduleReference; private String xpath; + private String moduleNamePrefix; private Map leaves = Collections.emptyMap(); private Collection xpathsChildren; private Collection childDataNodes = Collections.emptySet(); 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 4a9957deb..f2bde03a0 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 @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2021 Bell Canada. All rights reserved. * Modifications Copyright (C) 2021 Pantheon.tech + * Modifications Copyright (C) 2022 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -45,6 +46,7 @@ public class DataNodeBuilder { private NormalizedNode normalizedNodeTree; private String xpath; + private String moduleNamePrefix; private String parentNodeXpath = ""; private Map leaves = Collections.emptyMap(); private Collection childDataNodes = Collections.emptySet(); @@ -83,6 +85,17 @@ public class DataNodeBuilder { return this; } + /** + * To use module name for prefix for creating {@link DataNode}. + * + * @param moduleNamePrefix module name as prefix + * @return DataNodeBuilder + */ + public DataNodeBuilder withModuleNamePrefix(final String moduleNamePrefix) { + this.moduleNamePrefix = moduleNamePrefix; + return this; + } + /** * To use attributes for creating {@link DataNode}. * @@ -136,6 +149,7 @@ public class DataNodeBuilder { private DataNode buildFromAttributes() { final var dataNode = new DataNode(); dataNode.setXpath(xpath); + dataNode.setModuleNamePrefix(moduleNamePrefix); dataNode.setLeaves(leaves); dataNode.setChildDataNodes(childDataNodes); return dataNode; diff --git a/cps-service/src/main/java/org/onap/cps/utils/DataMapUtils.java b/cps-service/src/main/java/org/onap/cps/utils/DataMapUtils.java index 42719d9b3..ff5204ff6 100644 --- a/cps-service/src/main/java/org/onap/cps/utils/DataMapUtils.java +++ b/cps-service/src/main/java/org/onap/cps/utils/DataMapUtils.java @@ -1,7 +1,7 @@ /* * ============LICENSE_START======================================================= * Copyright (C) 2021 Pantheon.tech - * Modifications (C) 2021 Nordix Foundation + * Modifications (C) 2021-2022 Nordix Foundation * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -44,7 +44,7 @@ public class DataMapUtils { */ public static Map toDataMapWithIdentifier(final DataNode dataNode) { return ImmutableMap.builder() - .put(getNodeIdentifier(dataNode.getXpath()), toDataMap(dataNode)) + .put(getNodeIdentifierWithPrefix(dataNode.getXpath(), dataNode.getModuleNamePrefix()), toDataMap(dataNode)) .build(); } @@ -96,6 +96,13 @@ public class DataMapUtils { return toIndex > 0 ? xpath.substring(fromIndex, toIndex) : xpath.substring(fromIndex); } + private static String getNodeIdentifierWithPrefix(final String xpath, final String moduleNamePrefix) { + if (moduleNamePrefix != null) { + return moduleNamePrefix + ":" + getNodeIdentifier(xpath); + } + return getNodeIdentifier(xpath); + } + private static boolean isContainerNode(final String xpath) { return !isListElement(xpath); } -- cgit 1.2.3-korg