Improve CPS Exception handling
[cps.git] / cps-ri / src / main / java / org / onap / cps / spi / impl / CpsAdminPersistenceServiceImpl.java
index 684750c..f119507 100644 (file)
 
 package org.onap.cps.spi.impl;
 
-import org.onap.cps.exceptions.CpsNotFoundException;
-import org.onap.cps.exceptions.CpsValidationException;
 import org.onap.cps.spi.CpsAdminPersistenceService;
 import org.onap.cps.spi.entities.Dataspace;
 import org.onap.cps.spi.entities.Fragment;
 import org.onap.cps.spi.entities.Module;
+import org.onap.cps.spi.exceptions.AnchorAlreadyDefinedException;
 import org.onap.cps.spi.model.Anchor;
 import org.onap.cps.spi.repository.DataspaceRepository;
 import org.onap.cps.spi.repository.FragmentRepository;
@@ -51,23 +50,15 @@ public class CpsAdminPersistenceServiceImpl implements CpsAdminPersistenceServic
         final String anchorName = anchor.getAnchorName();
         try {
             final Dataspace dataspace = dataspaceRepository.getByName(anchor.getDataspaceName());
-            final Module module =
-                moduleRepository.getByDataspaceAndNamespaceAndRevision(dataspace,
-                    anchor.getNamespace(), anchor.getRevision());
-
-            final Fragment fragment = Fragment.builder().xpath(anchorName)
-                .anchorName(anchorName)
-                .dataspace(dataspace).module(module).build();
+            final Module module = moduleRepository
+                .getByDataspaceAndNamespaceAndRevision(dataspace, anchor.getNamespace(), anchor.getRevision());
+            final Fragment fragment =
+                Fragment.builder().xpath(anchorName).anchorName(anchorName).dataspace(dataspace).module(module).build();
 
             fragmentRepository.save(fragment);
             return anchorName;
-        } catch (final CpsNotFoundException ex) {
-            throw new CpsValidationException("Validation Error",
-                "Dataspace and/or Module do not exist.");
         } catch (final DataIntegrityViolationException ex) {
-            throw new CpsValidationException("Duplication Error",
-                String.format("Anchor with name %s already exist in dataspace %s.",
-                    anchorName, anchor.getDataspaceName()));
+            throw new AnchorAlreadyDefinedException(anchor.getDataspaceName(), anchorName, ex);
         }
     }
 }