From 3724abc1912f93bf1caa104a55da7178f43fd731 Mon Sep 17 00:00:00 2001 From: lukegleeson Date: Tue, 27 Jul 2021 15:07:05 +0100 Subject: Delete list-node p1 service and persistence layers Persistence Layer of delete List-Node Content Service Layer of delete List-Node Content Updating of deprecated FragementRepository.getOne() method to FragmentRepository.getByID() in CpsDataPersistenceServiceIntegration.groovy Remove Runtime Exceptions thrown from CpsDataService.java javadoc Issue-ID: CPS-361 Signed-off-by: lukegleeson Change-Id: Ib5762e73a6e8620c50c2e07b00086b9287770bc3 --- .../main/java/org/onap/cps/api/CpsDataService.java | 22 ++++++++++------------ .../org/onap/cps/api/impl/CpsDataServiceImpl.java | 7 +++++++ .../onap/cps/spi/CpsDataPersistenceService.java | 10 ++++++++++ 3 files changed, 27 insertions(+), 12 deletions(-) (limited to 'cps-service/src/main') diff --git a/cps-service/src/main/java/org/onap/cps/api/CpsDataService.java b/cps-service/src/main/java/org/onap/cps/api/CpsDataService.java index 7187810e4..6036f9222 100644 --- a/cps-service/src/main/java/org/onap/cps/api/CpsDataService.java +++ b/cps-service/src/main/java/org/onap/cps/api/CpsDataService.java @@ -23,9 +23,6 @@ package org.onap.cps.api; import org.checkerframework.checker.nullness.qual.NonNull; import org.onap.cps.spi.FetchDescendantsOption; -import org.onap.cps.spi.exceptions.AlreadyDefinedException; -import org.onap.cps.spi.exceptions.DataNodeNotFoundException; -import org.onap.cps.spi.exceptions.DataValidationException; import org.onap.cps.spi.model.DataNode; /* @@ -39,7 +36,6 @@ public interface CpsDataService { * @param dataspaceName dataspace name * @param anchorName anchor name * @param jsonData json data - * @throws DataValidationException when json data is invalid */ void saveData(@NonNull String dataspaceName, @NonNull String anchorName, @NonNull String jsonData); @@ -50,9 +46,6 @@ public interface CpsDataService { * @param anchorName anchor name * @param parentNodeXpath parent node xpath * @param jsonData json data - * @throws DataValidationException when json data is invalid - * @throws DataNodeNotFoundException when parent node cannot be found by parent node xpath - * @throws AlreadyDefinedException when child data node with same xpath already exists */ void saveData(@NonNull String dataspaceName, @NonNull String anchorName, @NonNull String parentNodeXpath, @NonNull String jsonData); @@ -65,9 +58,6 @@ public interface CpsDataService { * @param anchorName anchor name * @param parentNodeXpath parent node xpath * @param jsonData json data representing list element - * @throws DataValidationException when json data is invalid (incl. list-node being empty) - * @throws DataNodeNotFoundException when parent node cannot be found by parent node xpath - * @throws AlreadyDefinedException when any of child data nodes is having xpath of already existing node */ void saveListNodeData(@NonNull String dataspaceName, @NonNull String anchorName, @NonNull String parentNodeXpath, @NonNull String jsonData); @@ -115,9 +105,17 @@ public interface CpsDataService { * @param anchorName anchor name * @param parentNodeXpath parent node xpath * @param jsonData json data representing list element - * @throws DataValidationException when json data is invalid (incl. list-node being empty) - * @throws DataNodeNotFoundException when parent node cannot be found by parent node xpath */ void replaceListNodeData(@NonNull String dataspaceName, @NonNull String anchorName, @NonNull String parentNodeXpath, @NonNull String jsonData); + + /** + * Deletes (if exists) child data fragment representing list-node (with one or more elements) + * under existing data node for the given anchor and dataspace. + * + * @param dataspaceName dataspace name + * @param anchorName anchor name + * @param listNodeXpath list node xpath + */ + void deleteListNodeData(@NonNull String dataspaceName, @NonNull String anchorName, @NonNull String listNodeXpath); } 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 717df16a5..5e6e1a268 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 @@ -114,6 +114,13 @@ public class CpsDataServiceImpl implements CpsDataService { notificationService.processDataUpdatedEvent(dataspaceName, anchorName); } + @Override + public void deleteListNodeData(final String dataspaceName, final String anchorName, final String listNodeXpath) { + cpsDataPersistenceService.deleteListDataNodes(dataspaceName, anchorName, listNodeXpath); + notificationService.processDataUpdatedEvent(dataspaceName, anchorName); + } + + private DataNode buildDataNodeFromJson(final String dataspaceName, final String anchorName, final String parentNodeXpath, final String jsonData) { diff --git a/cps-service/src/main/java/org/onap/cps/spi/CpsDataPersistenceService.java b/cps-service/src/main/java/org/onap/cps/spi/CpsDataPersistenceService.java index cfb39f595..bf8dd1a07 100644 --- a/cps-service/src/main/java/org/onap/cps/spi/CpsDataPersistenceService.java +++ b/cps-service/src/main/java/org/onap/cps/spi/CpsDataPersistenceService.java @@ -111,6 +111,16 @@ public interface CpsDataPersistenceService { void replaceListDataNodes(@NonNull String dataspaceName, @NonNull String anchorName, @NonNull String parentNodeXpath, @NonNull Collection dataNodes); + /** + * Deletes existing list data node content including descendants. + * + * @param dataspaceName dataspace name + * @param anchorName anchor name + * @param listNodeXpath list node xpath + */ + void deleteListDataNodes(@NonNull String dataspaceName, @NonNull String anchorName, + @NonNull String listNodeXpath); + /** * Get a datanode by cps path. * -- cgit 1.2.3-korg