/*
* ============LICENSE_START=======================================================
* Copyright (C) 2021 Pantheon.tech
- * Modifications (C) 2021 Nordix Foundation
+ * Modifications (C) 2021-2022 Nordix Foundation
+ * Modifications Copyright (C) 2022 Bell Canada
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*/
public static Map<String, Object> toDataMapWithIdentifier(final DataNode dataNode) {
return ImmutableMap.<String, Object>builder()
- .put(getNodeIdentifier(dataNode.getXpath()), toDataMap(dataNode))
+ .put(getNodeIdentifierWithPrefix(dataNode.getXpath(), dataNode.getModuleNamePrefix()), toDataMap(dataNode))
.build();
}
));
}
- private static String getNodeIdentifier(final String xpath) {
- final int fromIndex = xpath.lastIndexOf("/") + 1;
- final int toIndex = xpath.indexOf("[", fromIndex);
- return toIndex > 0 ? xpath.substring(fromIndex, toIndex) : xpath.substring(fromIndex);
+ private static String getNodeIdentifier(String xpath) {
+ if (xpath.endsWith("]")) {
+ xpath = xpath.substring(0, xpath.lastIndexOf('['));
+ }
+ final int fromIndex = xpath.lastIndexOf('/') + 1;
+ return 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) {