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%2FPersistenceCmHandle.java;h=8b959e32779ee63362019978699e7f2338067b1d;hb=20b4f9cf0b662de4a7665b2a82593ef0205f5e06;hp=88d97d25f4c7ff1a1c5efc8812790f92f9b8b639;hpb=bc742a1dbe39a3269abab9e62a9d489f460144b0;p=cps.git diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandle.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandle.java index 88d97d25f..8b959e327 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandle.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandle.java @@ -22,13 +22,17 @@ package org.onap.cps.ncmp.api.models; import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.Strings; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; import lombok.AllArgsConstructor; +import lombok.Data; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import org.onap.cps.ncmp.api.impl.operations.RequiredDmiService; /** * DmiRegistry. @@ -43,22 +47,72 @@ public class PersistenceCmHandle { @JsonProperty("dmi-service-name") private String dmiServiceName; + @JsonProperty("dmi-data-service-name") + private String dmiDataServiceName; + + @JsonProperty("dmi-model-service-name") + private String dmiModelServiceName; + @JsonProperty("additional-properties") private List additionalProperties; + /** + * Create a persistenceCmHandle. + * @param dmiServiceName dmi service name + * @param dmiDataServiceName dmi data service name + * @param dmiModelServiceName dmi model service name + * @param cmHandle the cm handle + * @return instance of persistenceCmHandle + */ + public static PersistenceCmHandle toPersistenceCmHandle(final String dmiServiceName, + final String dmiDataServiceName, + final String dmiModelServiceName, + final CmHandle cmHandle) { + final PersistenceCmHandle persistenceCmHandle = new PersistenceCmHandle(); + persistenceCmHandle.setId(cmHandle.getCmHandleID()); + persistenceCmHandle.setDmiServiceName(dmiServiceName); + persistenceCmHandle.setDmiDataServiceName(dmiDataServiceName); + persistenceCmHandle.setDmiModelServiceName(dmiModelServiceName); + if (cmHandle.getCmHandleProperties() == null) { + persistenceCmHandle.asAdditionalProperties(Collections.emptyMap()); + } else { + persistenceCmHandle.asAdditionalProperties(cmHandle.getCmHandleProperties()); + } + return persistenceCmHandle; + } + /** * Set Additional Properties map, key and value pair. * @param additionalPropertiesAsMap Map of Additional Properties */ - public void setAdditionalProperties(final Map additionalPropertiesAsMap) { + public void asAdditionalProperties(final Map additionalPropertiesAsMap) { additionalProperties = new ArrayList<>(additionalPropertiesAsMap.size()); for (final Map.Entry entry : additionalPropertiesAsMap.entrySet()) { additionalProperties.add(new AdditionalProperty(entry.getKey(), entry.getValue())); } } + /** + * Resolve a dmi service name. + * @param requiredService indicates what typo of service is required + * @return dmi service name + */ + public String resolveDmiServiceName(final RequiredDmiService requiredService) { + if (isNullEmptyOrBlank(dmiServiceName)) { + if (RequiredDmiService.DATA.equals(requiredService)) { + return dmiDataServiceName; + } + return dmiModelServiceName; + } + return dmiServiceName; + } + + private static boolean isNullEmptyOrBlank(final String serviceName) { + return Strings.isNullOrEmpty(serviceName) || serviceName.isBlank(); + } + @AllArgsConstructor - @Getter + @Data public static class AdditionalProperty { @JsonProperty()