Migrate CPS to Spring-boot 3.0
[cps.git] / cps-ri / src / main / java / org / onap / cps / spi / impl / CpsAdminPersistenceServiceImpl.java
index 2cebfc7..2fb08d2 100755 (executable)
@@ -1,6 +1,6 @@
 /*
  * ============LICENSE_START=======================================================
- * Copyright (C) 2020-2022 Nordix Foundation.
+ * Copyright (C) 2020-2023 Nordix Foundation.
  * Modifications Copyright (C) 2020-2022 Bell Canada.
  * Modifications Copyright (C) 2021 Pantheon.tech
  * Modifications Copyright (C) 2022 TechMahindra Ltd.
 
 package org.onap.cps.spi.impl;
 
+import jakarta.transaction.Transactional;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
-import javax.transaction.Transactional;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.onap.cps.spi.CpsAdminPersistenceService;
@@ -130,6 +130,13 @@ public class CpsAdminPersistenceServiceImpl implements CpsAdminPersistenceServic
             .collect(Collectors.toSet());
     }
 
+    @Override
+    public Collection<Anchor> getAnchors(final String dataspaceName, final Collection<String> schemaSetNames) {
+        final DataspaceEntity dataspaceEntity = dataspaceRepository.getByName(dataspaceName);
+        return anchorRepository.findAllByDataspaceAndSchemaSetNameIn(dataspaceEntity, schemaSetNames)
+            .stream().map(CpsAdminPersistenceServiceImpl::toAnchor).collect(Collectors.toSet());
+    }
+
     @Override
     public Collection<Anchor> queryAnchors(final String dataspaceName, final Collection<String> inputModuleNames) {
         try {
@@ -157,6 +164,25 @@ public class CpsAdminPersistenceServiceImpl implements CpsAdminPersistenceServic
         anchorRepository.delete(anchorEntity);
     }
 
+    @Transactional
+    @Override
+    public void deleteAnchors(final String dataspaceName, final Collection<String> anchorNames) {
+        final var dataspaceEntity = dataspaceRepository.getByName(dataspaceName);
+        anchorRepository.deleteAllByDataspaceAndNameIn(dataspaceEntity, anchorNames);
+    }
+
+    @Transactional
+    @Override
+    public void updateAnchorSchemaSet(final String dataspaceName,
+                                         final String anchorName,
+                                         final String schemaSetName) {
+        final DataspaceEntity dataspaceEntity = dataspaceRepository.getByName(dataspaceName);
+        final AnchorEntity anchorEntity = anchorRepository.getByDataspaceAndName(dataspaceEntity, anchorName);
+        final SchemaSetEntity schemaSetEntity = schemaSetRepository
+                .getByDataspaceAndName(dataspaceEntity, schemaSetName);
+        anchorRepository.updateAnchorSchemaSetId(schemaSetEntity.getId(), anchorEntity.getId());
+    }
+
     private AnchorEntity getAnchorEntity(final String dataspaceName, final String anchorName) {
         final var dataspaceEntity = dataspaceRepository.getByName(dataspaceName);
         return anchorRepository.getByDataspaceAndName(dataspaceEntity, anchorName);
@@ -184,12 +210,10 @@ public class CpsAdminPersistenceServiceImpl implements CpsAdminPersistenceServic
             verifyDataspaceName(dataspaceName);
         }
         if (inputModuleNames.size() > retrievedModuleReferences.size()) {
-            final List<String> moduleNamesNotFound = inputModuleNames.stream()
+            final List<String> unknownModules = inputModuleNames.stream()
                 .filter(moduleName -> !retrievedModuleReferences.contains(moduleName))
                 .collect(Collectors.toList());
-            if (!moduleNamesNotFound.isEmpty()) {
-                throw new ModuleNamesNotFoundException(dataspaceName, moduleNamesNotFound);
-            }
+            throw new ModuleNamesNotFoundException(dataspaceName, unknownModules);
         }
     }