Create Endpoint For Get Cm Handles By Name
[cps.git] / cps-ncmp-service / src / main / java / org / onap / cps / ncmp / api / models / DmiPluginRegistration.java
index a604f34..d1360c3 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation
+ *  Copyright (C) 2021-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.
@@ -22,12 +22,12 @@ package org.onap.cps.ncmp.api.models;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import com.fasterxml.jackson.annotation.JsonSetter;
-import com.fasterxml.jackson.annotation.Nulls;
 import com.google.common.base.Strings;
+import java.util.Collections;
 import java.util.List;
 import lombok.Getter;
 import lombok.Setter;
+import org.onap.cps.ncmp.api.impl.exception.DmiRequestException;
 import org.onap.cps.ncmp.api.impl.exception.NcmpException;
 
 /**
@@ -38,26 +38,20 @@ import org.onap.cps.ncmp.api.impl.exception.NcmpException;
 @JsonInclude(Include.NON_NULL)
 public class DmiPluginRegistration {
 
-    @JsonSetter(nulls = Nulls.AS_EMPTY)
     private String dmiPlugin;
 
-    @JsonSetter(nulls = Nulls.AS_EMPTY)
     private String dmiDataPlugin;
 
-    @JsonSetter(nulls = Nulls.AS_EMPTY)
     private String dmiModelPlugin;
 
-    private List<CmHandle> createdCmHandles;
+    private List<NcmpServiceCmHandle> createdCmHandles = Collections.emptyList();
 
-    private List<CmHandle> updatedCmHandles;
+    private List<NcmpServiceCmHandle> updatedCmHandles = Collections.emptyList();
 
-    private List<String> removedCmHandles;
-
-    public static final String PLEASE_SUPPLY_CORRECT_PLUGIN_INFORMATION = "Please supply correct plugin information.";
+    private List<String> removedCmHandles = Collections.emptyList();
 
     /**
      * Validates plugin service names.
-     *
      * @throws NcmpException if validation fails.
      */
     public void validateDmiPluginRegistration() throws NcmpException {
@@ -67,19 +61,22 @@ public class DmiPluginRegistration {
 
         String errorMessage = null;
 
-        if (isNullEmptyOrBlank(combinedServiceName)
-            && isNullEmptyOrBlank(dataServiceName)
-            && isNullEmptyOrBlank(modelsServiceName)) {
-            errorMessage = "No DMI plugin service names";
-        }
-
-        if (!isNullEmptyOrBlank(combinedServiceName)
-            && (!isNullEmptyOrBlank(dataServiceName) || !isNullEmptyOrBlank(modelsServiceName))) {
-            errorMessage = "Invalid combination of plugin service names";
+        if (isNullEmptyOrBlank(combinedServiceName)) {
+            if ((isNullEmptyOrBlank(dataServiceName) && isNullEmptyOrBlank(modelsServiceName))) {
+                errorMessage = "No DMI plugin service names";
+            } else {
+                if (isNullEmptyOrBlank(dataServiceName) || isNullEmptyOrBlank(modelsServiceName)) {
+                    errorMessage = "Cannot register just a Data or Model plugin service name";
+                }
+            }
+        } else {
+            if (!isNullEmptyOrBlank(dataServiceName) || !isNullEmptyOrBlank(modelsServiceName)) {
+                errorMessage = "Cannot register combined plugin service name and other service names";
+            }
         }
 
         if (errorMessage != null) {
-            throw new NcmpException(errorMessage, PLEASE_SUPPLY_CORRECT_PLUGIN_INFORMATION);
+            throw new DmiRequestException(errorMessage, "Please supply correct plugin information.");
         }
     }