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=d1360c3256c9ca912fada1bb1d7fd04342d03ab0;hb=e557338803286d8aaa0f877aa25d52d18735f309;hp=f5a0d795488acf0b700adcebf83085246381f02c;hpb=e999b02056c3b4f4a7d891d105d75435d101e6ad;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..d1360c325 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 @@ -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. @@ -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.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; /** * Dmi Registry request object. @@ -37,10 +40,48 @@ public class DmiPluginRegistration { private String dmiPlugin; - private List createdCmHandles; + private String dmiDataPlugin; + + private String dmiModelPlugin; + + private List createdCmHandles = Collections.emptyList(); + + private List updatedCmHandles = Collections.emptyList(); + + private List removedCmHandles = Collections.emptyList(); + + /** + * 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)) { + 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"; + } + } - private List updatedCmHandles; + if (errorMessage != null) { + throw new DmiRequestException(errorMessage, "Please supply correct plugin information."); + } + } - private List removedCmHandles; + private static boolean isNullEmptyOrBlank(final String serviceName) { + return Strings.isNullOrEmpty(serviceName) || serviceName.isBlank(); + } }