diff options
author | Rudrangi Anupriya <ra00745022@techmahindra.com> | 2023-07-17 20:20:34 +0530 |
---|---|---|
committer | Lee Anjella Macabuhay <lee.anjella.macabuhay@est.tech> | 2023-07-18 08:42:26 +0000 |
commit | ad61e283f7d981c3c8e307af871fb3a63e0cf4f9 (patch) | |
tree | 1c7670de106a9f157ec0456df8b7c0a1ef43e328 /cps-service/src/main | |
parent | dcf84ad73f0301ef41049e692b9963f6dcac3661 (diff) |
Persisting a list element to a parent list (ep2)
Post List Element does not allow for create List Element, only appends onto existing node as children
-Add a check in saveListElements to see if the parent xpath is a root path ("/").If root node store list element as top node. Else add passed list element to parent xpath node.
-Add test for scenario for above
-Add test scenario Saving list element data fragment under Root node
-Add Integration Tests Add and Delete top-level list (element) data nodes with root node
-Update bookstore model with TopLevelList datanode
Issue-ID: CPS-1586
Change-Id: Iaa7f59fbeebb03703626132c6d5c2afde0e7ab4b
Signed-off-by: Rudrangi Anupriya <ra00745022@techmahindra.com>
Diffstat (limited to 'cps-service/src/main')
-rwxr-xr-x | cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java b/cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java index 6e7c1649d7..7db87e87ea 100755 --- a/cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java +++ b/cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java @@ -116,8 +116,12 @@ public class CpsDataServiceImpl implements CpsDataService { final Anchor anchor = cpsAdminService.getAnchor(dataspaceName, anchorName); final Collection<DataNode> listElementDataNodeCollection = buildDataNodes(anchor, parentNodeXpath, jsonData, ContentType.JSON); - cpsDataPersistenceService.addListElements(dataspaceName, anchorName, parentNodeXpath, - listElementDataNodeCollection); + if (isRootNodeXpath(parentNodeXpath)) { + cpsDataPersistenceService.storeDataNodes(dataspaceName, anchorName, listElementDataNodeCollection); + } else { + cpsDataPersistenceService.addListElements(dataspaceName, anchorName, parentNodeXpath, + listElementDataNodeCollection); + } processDataUpdatedEventAsync(anchor, parentNodeXpath, UPDATE, observedTimestamp); } @@ -391,6 +395,10 @@ public class CpsDataServiceImpl implements CpsDataService { .get(anchor.getDataspaceName(), anchor.getSchemaSetName()).getSchemaContext(); } + private static boolean isRootNodeXpath(final String xpath) { + return ROOT_NODE_XPATH.equals(xpath); + } + private void processDataNodeUpdate(final Anchor anchor, final DataNode dataNodeUpdate) { cpsDataPersistenceService.batchUpdateDataLeaves(anchor.getDataspaceName(), anchor.getName(), Collections.singletonMap(dataNodeUpdate.getXpath(), dataNodeUpdate.getLeaves())); |