From 9cfc03f3af00d0128a5b22e32cc5ba439de627b6 Mon Sep 17 00:00:00 2001 From: danielhanrahan Date: Fri, 30 Jun 2023 12:14:07 +0100 Subject: Combine alreadyDefinedException classes Issue-ID: CPS-1774 Signed-off-by: danielhanrahan Change-Id: I52ff9074a9f8188e8635a811b0d2713a97cb4b10 --- .../spi/exceptions/AlreadyDefinedException.java | 46 ++++++++++------------ .../exceptions/AlreadyDefinedExceptionBatch.java | 34 ---------------- .../cps/spi/exceptions/CpsExceptionsSpec.groovy | 9 +++-- 3 files changed, 25 insertions(+), 64 deletions(-) delete mode 100644 cps-service/src/main/java/org/onap/cps/spi/exceptions/AlreadyDefinedExceptionBatch.java (limited to 'cps-service/src') diff --git a/cps-service/src/main/java/org/onap/cps/spi/exceptions/AlreadyDefinedException.java b/cps-service/src/main/java/org/onap/cps/spi/exceptions/AlreadyDefinedException.java index 0ad48dda2..863bb0f80 100644 --- a/cps-service/src/main/java/org/onap/cps/spi/exceptions/AlreadyDefinedException.java +++ b/cps-service/src/main/java/org/onap/cps/spi/exceptions/AlreadyDefinedException.java @@ -1,6 +1,6 @@ /* * ============LICENSE_START======================================================= - * Copyright (C) 2021 Nordix Foundation + * Copyright (C) 2021-2023 Nordix Foundation * Modifications Copyright (C) 2021 Pantheon.tech * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -22,6 +22,8 @@ package org.onap.cps.spi.exceptions; import java.util.Collection; +import java.util.Collections; +import lombok.Getter; /** * Already defined exception. Indicates the cps object with same name already exists. @@ -31,29 +33,28 @@ import java.util.Collection; public class AlreadyDefinedException extends CpsAdminException { private static final long serialVersionUID = 501929839139881112L; + public static final String ALREADY_DEFINED_EXCEPTION_MESSAGE = "Already defined exception"; + + @Getter + private final Collection alreadyDefinedObjectNames; - /** - * Constructor. - * - * @param objectType the object type - * @param objectName the name of the object - * @param contextName the context name e.g. Anchor or Dataspace - * @param cause the cause of the exception - */ private AlreadyDefinedException(final String objectType, final String objectName, final String contextName, final Throwable cause) { - super("Already defined exception", + super(ALREADY_DEFINED_EXCEPTION_MESSAGE, String.format("%s with name %s already exists for %s.", objectType, objectName, contextName), cause); + alreadyDefinedObjectNames = Collections.singletonList(objectName); + } + + private AlreadyDefinedException(final String objectType, final Collection objectNames, + final String contextName) { + super(ALREADY_DEFINED_EXCEPTION_MESSAGE, + String.format("%d %s already exist for %s.", objectNames.size(), objectType, contextName)); + alreadyDefinedObjectNames = objectNames; } - /** - * Constructor. - * - * @param objectName the name of the object - * @param cause the cause of the exception - */ private AlreadyDefinedException(final String objectName, final Throwable cause) { - super("Already defined exception", String.format("%s already exists.", objectName), cause); + super(ALREADY_DEFINED_EXCEPTION_MESSAGE, String.format("%s already exists.", objectName), cause); + alreadyDefinedObjectNames = Collections.singletonList(objectName); } public static AlreadyDefinedException forDataspace(final String dataspaceName, final Throwable cause) { @@ -70,14 +71,7 @@ public class AlreadyDefinedException extends CpsAdminException { return new AlreadyDefinedException("Schema Set", schemaSetName, contextName, cause); } - public static AlreadyDefinedException forDataNode(final String xpath, final String contextName, - final Throwable cause) { - return new AlreadyDefinedException("Data node", xpath, contextName, cause); - } - - public static AlreadyDefinedException forDataNodes(final Collection xpaths, final String contextName, - final Throwable cause) { - final var name = String.format("(one or more) of %s", xpaths); - return new AlreadyDefinedException("Data node", name, contextName, cause); + public static AlreadyDefinedException forDataNodes(final Collection xpaths, final String contextName) { + return new AlreadyDefinedException("data node(s)", xpaths, contextName); } } diff --git a/cps-service/src/main/java/org/onap/cps/spi/exceptions/AlreadyDefinedExceptionBatch.java b/cps-service/src/main/java/org/onap/cps/spi/exceptions/AlreadyDefinedExceptionBatch.java deleted file mode 100644 index 0ba656aa1..000000000 --- a/cps-service/src/main/java/org/onap/cps/spi/exceptions/AlreadyDefinedExceptionBatch.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2022 Nordix Foundation - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.cps.spi.exceptions; - -import java.util.Collection; -import lombok.Getter; - -public class AlreadyDefinedExceptionBatch extends RuntimeException { - - @Getter - private final Collection alreadyDefinedXpaths; - - public AlreadyDefinedExceptionBatch(final Collection alreadyDefinedXPaths) { - this.alreadyDefinedXpaths = alreadyDefinedXPaths; - } -} diff --git a/cps-service/src/test/groovy/org/onap/cps/spi/exceptions/CpsExceptionsSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/spi/exceptions/CpsExceptionsSpec.groovy index 5bd367834..8db106334 100755 --- a/cps-service/src/test/groovy/org/onap/cps/spi/exceptions/CpsExceptionsSpec.groovy +++ b/cps-service/src/test/groovy/org/onap/cps/spi/exceptions/CpsExceptionsSpec.groovy @@ -1,6 +1,6 @@ /* * ============LICENSE_START======================================================= - * Copyright (C) 2021 Nordix Foundation + * Copyright (C) 2021-2023 Nordix Foundation * Modifications Copyright (C) 2021 Pantheon.tech * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -18,6 +18,7 @@ * SPDX-License-Identifier: Apache-2.0 * ============LICENSE_END========================================================= */ + package org.onap.cps.spi.exceptions import spock.lang.Specification @@ -152,10 +153,10 @@ class CpsExceptionsSpec extends Specification { == "Anchor with name ${anchorName} already exists for ${dataspaceName}." } - def 'Creating a exception that a data node already exists.'() { + def 'Creating a exception that data nodes already exist.'() { expect: 'the exception details contains the correct message with xpath and dataspace name.' - (AlreadyDefinedException.forDataNode(xpath, dataspaceName, rootCause)).details - == "Data node with name ${xpath} already exists for ${dataspaceName}." + (AlreadyDefinedException.forDataNodes([xpath], anchorName)).details + == "1 data node(s) already exist for ${anchorName}." } def 'Creating a exception that a schema set already exists.'() { -- cgit 1.2.3-korg