2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2021-2022 Nordix Foundation
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.cps.ncmp.api.models;
23 import com.fasterxml.jackson.annotation.JsonInclude;
24 import com.fasterxml.jackson.annotation.JsonInclude.Include;
25 import com.fasterxml.jackson.annotation.JsonSetter;
26 import com.fasterxml.jackson.annotation.Nulls;
27 import com.google.common.base.Strings;
28 import java.util.List;
31 import org.onap.cps.ncmp.api.impl.exception.DmiRequestException;
32 import org.onap.cps.ncmp.api.impl.exception.NcmpException;
35 * Dmi Registry request object.
39 @JsonInclude(Include.NON_NULL)
40 public class DmiPluginRegistration {
42 @JsonSetter(nulls = Nulls.AS_EMPTY)
43 private String dmiPlugin;
45 @JsonSetter(nulls = Nulls.AS_EMPTY)
46 private String dmiDataPlugin;
48 @JsonSetter(nulls = Nulls.AS_EMPTY)
49 private String dmiModelPlugin;
51 private List<CmHandle> createdCmHandles;
53 private List<CmHandle> updatedCmHandles;
55 private List<String> removedCmHandles;
58 * Validates plugin service names.
60 * @throws NcmpException if validation fails.
62 public void validateDmiPluginRegistration() throws NcmpException {
63 final String combinedServiceName = dmiPlugin;
64 final String dataServiceName = dmiDataPlugin;
65 final String modelsServiceName = dmiModelPlugin;
67 String errorMessage = null;
69 if (isNullEmptyOrBlank(combinedServiceName)) {
70 if ((isNullEmptyOrBlank(dataServiceName) && isNullEmptyOrBlank(modelsServiceName))) {
71 errorMessage = "No DMI plugin service names";
73 if (isNullEmptyOrBlank(dataServiceName) || isNullEmptyOrBlank(modelsServiceName)) {
74 errorMessage = "Cannot register just a Data or Model plugin service name";
78 if (!isNullEmptyOrBlank(dataServiceName) || !isNullEmptyOrBlank(modelsServiceName)) {
79 errorMessage = "Cannot register combined plugin service name and other service names";
83 if (errorMessage != null) {
84 throw new DmiRequestException(errorMessage, "Please supply correct plugin information.");
88 private static boolean isNullEmptyOrBlank(final String serviceName) {
89 return Strings.isNullOrEmpty(serviceName) || serviceName.isBlank();