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=cc32bb75c0b10d6c987fa28c84b4dcb005057f1d;hb=63132cec2c18363a8224646039cc23b6144d8e6c;hp=a3f47040b34b1bb2809e4f475fa7cb3d929373d1;hpb=4f4178c7af4ca5571a0813a5c79f35b11c825d35;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 a3f47040b..cc32bb75c 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 @@ -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,13 +22,16 @@ 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.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 +46,70 @@ 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; + private List dmiProperties; + + @JsonProperty("public-properties") + private List publicProperties; + + /** + * 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); + persistenceCmHandle.setDmiProperties(asPersistenceCmHandleProperties(cmHandle.getDmiProperties())); + persistenceCmHandle.setPublicProperties(asPersistenceCmHandleProperties(cmHandle.getPublicProperties())); + return persistenceCmHandle; + } /** - * Set Additional Properties map, key and value pair. - * @param additionalPropertiesAsMap Map of Additional Properties + * Resolve a dmi service name. + * @param requiredService indicates what typo of service is required + * @return dmi service name */ - public void setAdditionalProperties(final Map additionalPropertiesAsMap) { - additionalProperties = new ArrayList<>(additionalPropertiesAsMap.size()); - for (final Map.Entry entry : additionalPropertiesAsMap.entrySet()) { - additionalProperties.add(new AdditionalProperty(entry.getKey(), entry.getValue())); + public String resolveDmiServiceName(final RequiredDmiService requiredService) { + if (isNullEmptyOrBlank(dmiServiceName)) { + if (RequiredDmiService.DATA.equals(requiredService)) { + return dmiDataServiceName; + } + return dmiModelServiceName; + } + return dmiServiceName; + } + + private static List asPersistenceCmHandleProperties(final Map propertiesAsMap) { + final List persistenceCmHandleProperties = new ArrayList<>(propertiesAsMap.size()); + for (final Map.Entry entry : propertiesAsMap.entrySet()) { + persistenceCmHandleProperties.add(new PersistenceCmHandle.Property(entry.getKey(), entry.getValue())); } + return persistenceCmHandleProperties; + } + + private static boolean isNullEmptyOrBlank(final String serviceName) { + return Strings.isNullOrEmpty(serviceName) || serviceName.isBlank(); } @AllArgsConstructor - private static class AdditionalProperty { + @Data + public static class Property { @JsonProperty() private final String name;