|
|
|
@ -57,7 +57,7 @@ final class MapToMapConverter implements ConditionalGenericConverter { |
|
|
|
if (source == null) { |
|
|
|
if (source == null) { |
|
|
|
return null; |
|
|
|
return null; |
|
|
|
} |
|
|
|
} |
|
|
|
boolean isCopyRequired = !targetType.getType().isInstance(source); |
|
|
|
boolean copyRequired = !targetType.getType().isInstance(source); |
|
|
|
Map<Object, Object> sourceMap = (Map<Object, Object>) source; |
|
|
|
Map<Object, Object> sourceMap = (Map<Object, Object>) source; |
|
|
|
Map<Object, Object> targetMap = CollectionFactory.createMap(targetType.getType(), sourceMap.size()); |
|
|
|
Map<Object, Object> targetMap = CollectionFactory.createMap(targetType.getType(), sourceMap.size()); |
|
|
|
for (Map.Entry<Object, Object> entry : sourceMap.entrySet()) { |
|
|
|
for (Map.Entry<Object, Object> entry : sourceMap.entrySet()) { |
|
|
|
@ -67,10 +67,10 @@ final class MapToMapConverter implements ConditionalGenericConverter { |
|
|
|
Object targetValue = convertValue(sourceValue, sourceType, targetType.getMapValueTypeDescriptor()); |
|
|
|
Object targetValue = convertValue(sourceValue, sourceType, targetType.getMapValueTypeDescriptor()); |
|
|
|
targetMap.put(targetKey, targetValue); |
|
|
|
targetMap.put(targetKey, targetValue); |
|
|
|
if (sourceKey != targetKey || sourceValue != targetValue) { |
|
|
|
if (sourceKey != targetKey || sourceValue != targetValue) { |
|
|
|
isCopyRequired = true; |
|
|
|
copyRequired = true; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return isCopyRequired ? targetMap : sourceMap; |
|
|
|
return copyRequired ? targetMap : sourceMap; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// internal helpers
|
|
|
|
// internal helpers
|
|
|
|
|