XMLWordPrintable

      Implement the functionality to support multiple nodes removal using list-node xpath.

      list-node xpath is similar to list-node element but with no node identifier, so it can be used as a common xpath prefix:

      if list-node element xpath is /root/parent/list-node[@key='A']
      then list-node xpath will be /root/parent/list-node

      A/C

      REST layer (incl openapi update)

      • uri:
        • (CPS) DELETE /dataspaces/{dataspaceName}/anchor/{anchorName}/list-node
        •  (NCMP) DELETE /cm-handle/{cmHandle}/list-node

      REST layer (DataRestController.java)

      • Create new method deleteListNodeElements(final String dataspaceName, final String anchorName, final String listNodeXpath)
      • Call cpsDataService.deleteListNodeData()
      • return 200

      REST layer (cpsData.yml)

      • Add patch

      REST layer (DataRestControllerSpec.groovy)

      • Ensure appropriate REST responses on invocation 

      Service layer (CpsDataService.java)

      • Create new abstract method deleteNodeTree() 

      Service layer (CpsDataServiceImpl.java)

      • Override abstract method deleteNodeTree()
      • Validate the xpath of the list-nodes String
      • call cpsDataPersistenceService.deleteListDataNodes()
      • notificationService.processDataUpdatedEvent(dataspaceName, anchorName)

      Service layer (CpsDataServiceImplSpec.groovy)

      • delete list-node data fragment under existing node
      • delete list-node data fragment under non existing node

      Persistence layer (CpsDataPersistenceService.java)

      • Create new abstract method deleteListDataNodes()

      Persistence layer (CpsDataPersistenceServiceImpl.java)

      • Override abstract method deleteListDataNodes()
      • Use method getFragmentByXpath() to get the parentEntity of the List-Node
      • Use parentEntity and a method parameter String listNodeXpath as arguments for method removeListNodeDescendants()

      Persistence layer (CpsDataPersistenceServiceSpec.groovy)

      • Delete list node content successfully
      • Error thrown when listNodeXpath does not exist

            lukegleeson lukegleeson
            rkashapov rkashapov
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: