2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2021 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.NcmpException;
34 * Dmi Registry request object.
38 @JsonInclude(Include.NON_NULL)
39 public class DmiPluginRegistration {
41 @JsonSetter(nulls = Nulls.AS_EMPTY)
42 private String dmiPlugin;
44 @JsonSetter(nulls = Nulls.AS_EMPTY)
45 private String dmiDataPlugin;
47 @JsonSetter(nulls = Nulls.AS_EMPTY)
48 private String dmiModelPlugin;
50 private List<CmHandle> createdCmHandles;
52 private List<CmHandle> updatedCmHandles;
54 private List<String> removedCmHandles;
56 public static final String PLEASE_SUPPLY_CORRECT_PLUGIN_INFORMATION = "Please supply correct plugin information.";
59 * Validates plugin service names.
61 * @throws NcmpException if validation fails.
63 public void validateDmiPluginRegistration() throws NcmpException {
64 final String combinedServiceName = dmiPlugin;
65 final String dataServiceName = dmiDataPlugin;
66 final String modelsServiceName = dmiModelPlugin;
68 String errorMessage = null;
70 if (isNullEmptyOrBlank(combinedServiceName)
71 && isNullEmptyOrBlank(dataServiceName)
72 && isNullEmptyOrBlank(modelsServiceName)) {
73 errorMessage = "No DMI plugin service names";
76 if (!isNullEmptyOrBlank(combinedServiceName)
77 && (!isNullEmptyOrBlank(dataServiceName) || !isNullEmptyOrBlank(modelsServiceName))) {
78 errorMessage = "Invalid combination of plugin service names";
81 if (errorMessage != null) {
82 throw new NcmpException(errorMessage, PLEASE_SUPPLY_CORRECT_PLUGIN_INFORMATION);
86 private static boolean isNullEmptyOrBlank(final String serviceName) {
87 return Strings.isNullOrEmpty(serviceName) || serviceName.isBlank();