[TECHDEBT] Align CPS NCMP REST API Specification
[cps.git] / cps-ri / src / main / java / org / onap / cps / spi / impl / CpsAdminPersistenceServiceImpl.java
index e5df9c5..9c69006 100755 (executable)
@@ -30,7 +30,9 @@ import javax.transaction.Transactional;
 import org.onap.cps.spi.CpsAdminPersistenceService;
 import org.onap.cps.spi.entities.AnchorEntity;
 import org.onap.cps.spi.entities.DataspaceEntity;
+import org.onap.cps.spi.entities.YangResourceModuleReference;
 import org.onap.cps.spi.exceptions.AlreadyDefinedException;
+import org.onap.cps.spi.exceptions.DataspaceInUseException;
 import org.onap.cps.spi.exceptions.ModuleNamesNotFoundException;
 import org.onap.cps.spi.model.Anchor;
 import org.onap.cps.spi.repository.AnchorRepository;
@@ -69,6 +71,22 @@ public class CpsAdminPersistenceServiceImpl implements CpsAdminPersistenceServic
         }
     }
 
+    @Override
+    public void deleteDataspace(final String dataspaceName) {
+        final DataspaceEntity dataspaceEntity = dataspaceRepository.getByName(dataspaceName);
+        final int numberOfAssociatedAnchors = anchorRepository.countByDataspace(dataspaceEntity);
+        if (numberOfAssociatedAnchors != 0) {
+            throw new DataspaceInUseException(dataspaceName,
+                    String.format("Dataspace contains %d anchor(s)", numberOfAssociatedAnchors));
+        }
+        final int numberOfAssociatedSchemaSets = schemaSetRepository.countByDataspace(dataspaceEntity);
+        if (numberOfAssociatedSchemaSets != 0) {
+            throw new DataspaceInUseException(dataspaceName,
+                    String.format("Dataspace contains %d schemaset(s)", numberOfAssociatedSchemaSets));
+        }
+        dataspaceRepository.delete(dataspaceEntity);
+    }
+
     @Override
     public void createAnchor(final String dataspaceName, final String schemaSetName, final String anchorName) {
         final var dataspaceEntity = dataspaceRepository.getByName(dataspaceName);
@@ -132,7 +150,7 @@ public class CpsAdminPersistenceServiceImpl implements CpsAdminPersistenceServic
         final Collection<String> inputModuleNames) {
         final Collection<String> retrievedModuleNames =
             yangResourceRepository.findAllModuleReferences(dataspaceName, inputModuleNames)
-                .stream().map(module -> module.getModuleName())
+                .stream().map(YangResourceModuleReference::getModuleName)
                 .collect(Collectors.toList());
         if (retrievedModuleNames.isEmpty()) {
             dataspaceRepository.getByName(dataspaceName);