Fixing CompositeState mapping
[cps.git] / cps-ncmp-rest / src / main / java / org / onap / cps / ncmp / rest / mapper / RestOutputCmHandleStateMapper.java
index 89015cc..ce32068 100644 (file)
@@ -23,13 +23,16 @@ package org.onap.cps.ncmp.rest.mapper;
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
 import org.mapstruct.Named;
+import org.mapstruct.NullValueCheckStrategy;
+import org.mapstruct.NullValuePropertyMappingStrategy;
 import org.onap.cps.ncmp.api.inventory.CmHandleState;
 import org.onap.cps.ncmp.api.inventory.CompositeState;
 import org.onap.cps.ncmp.rest.model.DataStores;
 import org.onap.cps.ncmp.rest.model.RestOutputCmHandleState;
 import org.onap.cps.ncmp.rest.model.SyncState;
 
-@Mapper(componentModel = "spring")
+@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS,
+        nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.SET_TO_DEFAULT)
 public interface RestOutputCmHandleStateMapper {
 
     @Mapping(target = "dataSyncState", source = "dataStores", qualifiedByName = "dataStoreToDataSyncState")
@@ -45,6 +48,10 @@ public interface RestOutputCmHandleStateMapper {
     @Named("dataStoreToDataSyncState")
     static DataStores toDataStores(CompositeState.DataStores compositeStateDataStore) {
 
+        if (compositeStateDataStore == null) {
+            return null;
+        }
+
         final DataStores dataStores = new DataStores();
 
         if (compositeStateDataStore.getRunningDataStore() != null) {
@@ -68,6 +75,7 @@ public interface RestOutputCmHandleStateMapper {
 
     /**
      * Converts cmHandleState enum value to equivalent string.
+     *
      * @param cmHandleState cm handle state enum
      * @return cm handle state as string
      */