X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-ncmp-service%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fcps%2Fncmp%2Fapi%2Fmodels%2FDmiPluginRegistration.java;h=a604f3448482b00fd1f08c6a6de80a6992680c72;hb=20b4f9cf0b662de4a7665b2a82593ef0205f5e06;hp=f5a0d795488acf0b700adcebf83085246381f02c;hpb=bc742a1dbe39a3269abab9e62a9d489f460144b0;p=cps.git diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java index f5a0d7954..a604f3448 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java @@ -18,14 +18,17 @@ * ============LICENSE_END========================================================= */ - 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.List; import lombok.Getter; import lombok.Setter; +import org.onap.cps.ncmp.api.impl.exception.NcmpException; /** * Dmi Registry request object. @@ -35,12 +38,53 @@ import lombok.Setter; @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 createdCmHandles; private List updatedCmHandles; private List removedCmHandles; + public static final String PLEASE_SUPPLY_CORRECT_PLUGIN_INFORMATION = "Please supply correct plugin information."; + + /** + * Validates plugin service names. + * + * @throws NcmpException if validation fails. + */ + public void validateDmiPluginRegistration() throws NcmpException { + final String combinedServiceName = dmiPlugin; + final String dataServiceName = dmiDataPlugin; + final String modelsServiceName = dmiModelPlugin; + + 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 (errorMessage != null) { + throw new NcmpException(errorMessage, PLEASE_SUPPLY_CORRECT_PLUGIN_INFORMATION); + } + } + + private static boolean isNullEmptyOrBlank(final String serviceName) { + return Strings.isNullOrEmpty(serviceName) || serviceName.isBlank(); + } + }