summaryrefslogtreecommitdiffstats
path: root/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandle.java
diff options
context:
space:
mode:
Diffstat (limited to 'cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandle.java')
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandle.java58
1 files changed, 56 insertions, 2 deletions
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<AdditionalProperty> 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<String, String> additionalPropertiesAsMap) {
+ public void asAdditionalProperties(final Map<String, String> additionalPropertiesAsMap) {
additionalProperties = new ArrayList<>(additionalPropertiesAsMap.size());
for (final Map.Entry<String, String> 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()