Browse Source

added utility method to reduce code duplication

pull/7/head
Keith Donald 15 years ago
parent
commit
15e009f3a0
  1. 18
      org.springframework.core/src/main/java/org/springframework/core/convert/support/ArrayToCollectionConverter.java
  2. 18
      org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToArrayConverter.java
  3. 22
      org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToCollectionConverter.java
  4. 18
      org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToObjectConverter.java
  5. 18
      org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToStringConverter.java
  6. 25
      org.springframework.core/src/main/java/org/springframework/core/convert/support/ConversionUtils.java
  7. 44
      org.springframework.core/src/main/java/org/springframework/core/convert/support/MapToMapConverter.java
  8. 14
      org.springframework.core/src/main/java/org/springframework/core/convert/support/ObjectToArrayConverter.java
  9. 18
      org.springframework.core/src/main/java/org/springframework/core/convert/support/ObjectToCollectionConverter.java

18
org.springframework.core/src/main/java/org/springframework/core/convert/support/ArrayToCollectionConverter.java

@ -49,23 +49,7 @@ final class ArrayToCollectionConverter implements ConditionalGenericConverter { @@ -49,23 +49,7 @@ final class ArrayToCollectionConverter implements ConditionalGenericConverter {
}
public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) {
if (targetType.getElementTypeDescriptor() == null) {
// yes
return true;
}
boolean canConvert = conversionService.canConvert(sourceType.getElementTypeDescriptor(), targetType.getElementTypeDescriptor());
if (canConvert) {
// yes
return true;
} else {
if (sourceType.getElementTypeDescriptor().getType().isAssignableFrom(targetType.getElementTypeDescriptor().getType())) {
// maybe;
return true;
} else {
// no;
return false;
}
}
return ConversionUtils.canConvertElements(sourceType.getElementTypeDescriptor(), targetType.getElementTypeDescriptor(), conversionService);
}
@SuppressWarnings("unchecked")

18
org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToArrayConverter.java

@ -49,23 +49,7 @@ final class CollectionToArrayConverter implements ConditionalGenericConverter { @@ -49,23 +49,7 @@ final class CollectionToArrayConverter implements ConditionalGenericConverter {
}
public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) {
if (sourceType.getElementTypeDescriptor() == null) {
// maybe
return true;
}
boolean canConvert = conversionService.canConvert(sourceType.getElementTypeDescriptor(), targetType.getElementTypeDescriptor());
if (canConvert) {
// yes
return true;
} else {
if (sourceType.getElementTypeDescriptor().getType().isAssignableFrom(targetType.getElementTypeDescriptor().getType())) {
// maybe;
return true;
} else {
// no;
return false;
}
}
return ConversionUtils.canConvertElements(sourceType.getElementTypeDescriptor(), targetType.getElementTypeDescriptor(), conversionService);
}
public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {

22
org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToCollectionConverter.java

@ -49,27 +49,7 @@ final class CollectionToCollectionConverter implements ConditionalGenericConvert @@ -49,27 +49,7 @@ final class CollectionToCollectionConverter implements ConditionalGenericConvert
}
public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) {
if (targetType.getElementTypeDescriptor() == null) {
// yes
return true;
}
if (sourceType.getElementTypeDescriptor() == null) {
// maybe
return true;
}
boolean canConvert = conversionService.canConvert(sourceType.getElementTypeDescriptor(), targetType.getElementTypeDescriptor());
if (canConvert) {
// yes
return true;
} else {
if (sourceType.getElementTypeDescriptor().getType().isAssignableFrom(targetType.getElementTypeDescriptor().getType())) {
// maybe;
return true;
} else {
// no;
return false;
}
}
return ConversionUtils.canConvertElements(sourceType.getElementTypeDescriptor(), targetType.getElementTypeDescriptor(), conversionService);
}
@SuppressWarnings("unchecked")

18
org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToObjectConverter.java

@ -43,23 +43,7 @@ final class CollectionToObjectConverter implements ConditionalGenericConverter { @@ -43,23 +43,7 @@ final class CollectionToObjectConverter implements ConditionalGenericConverter {
}
public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) {
if (sourceType.getElementTypeDescriptor() == null) {
// maybe
return true;
}
boolean canConvert = conversionService.canConvert(sourceType.getElementTypeDescriptor(), targetType);
if (canConvert) {
// yes
return true;
} else {
if (sourceType.getElementTypeDescriptor().getType().isAssignableFrom(targetType.getType())) {
// maybe;
return true;
} else {
// no;
return false;
}
}
return ConversionUtils.canConvertElements(sourceType.getElementTypeDescriptor(), targetType, conversionService);
}
public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {

18
org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToStringConverter.java

@ -45,23 +45,7 @@ final class CollectionToStringConverter implements ConditionalGenericConverter { @@ -45,23 +45,7 @@ final class CollectionToStringConverter implements ConditionalGenericConverter {
}
public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) {
if (sourceType.getElementTypeDescriptor() == null) {
// maybe
return true;
}
boolean canConvert = conversionService.canConvert(sourceType.getElementTypeDescriptor(), targetType);
if (canConvert) {
// yes
return true;
} else {
if (sourceType.getElementTypeDescriptor().getType().isAssignableFrom(targetType.getType())) {
// maybe;
return true;
} else {
// no;
return false;
}
}
return ConversionUtils.canConvertElements(sourceType.getElementTypeDescriptor(), targetType, conversionService);
}
public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {

25
org.springframework.core/src/main/java/org/springframework/core/convert/support/ConversionUtils.java

@ -17,6 +17,7 @@ @@ -17,6 +17,7 @@
package org.springframework.core.convert.support;
import org.springframework.core.convert.ConversionFailedException;
import org.springframework.core.convert.ConversionService;
import org.springframework.core.convert.TypeDescriptor;
import org.springframework.core.convert.converter.GenericConverter;
@ -40,5 +41,29 @@ abstract class ConversionUtils { @@ -40,5 +41,29 @@ abstract class ConversionUtils {
throw new ConversionFailedException(sourceType, targetType, source, ex);
}
}
public static boolean canConvertElements(TypeDescriptor sourceElementType, TypeDescriptor targetElementType, ConversionService conversionService) {
if (targetElementType == null) {
// yes
return true;
}
if (sourceElementType == null) {
// maybe
return true;
}
boolean canConvert = conversionService.canConvert(sourceElementType, targetElementType);
if (canConvert) {
// yes
return true;
} else {
if (sourceElementType.getType().isAssignableFrom(targetElementType.getType())) {
// maybe;
return true;
} else {
// no;
return false;
}
}
}
}

44
org.springframework.core/src/main/java/org/springframework/core/convert/support/MapToMapConverter.java

@ -72,51 +72,11 @@ final class MapToMapConverter implements ConditionalGenericConverter { @@ -72,51 +72,11 @@ final class MapToMapConverter implements ConditionalGenericConverter {
// internal helpers
private boolean canConvertKey(TypeDescriptor sourceType, TypeDescriptor targetType) {
if (targetType.getMapKeyTypeDescriptor() == null) {
// yes
return true;
}
if (sourceType.getMapKeyTypeDescriptor() == null) {
// maybe
return true;
}
boolean canConvert = conversionService.canConvert(sourceType.getMapKeyTypeDescriptor(), targetType.getMapKeyTypeDescriptor());
if (canConvert) {
// yes
return true;
} else {
if (sourceType.getMapKeyTypeDescriptor().getType().isAssignableFrom(targetType.getMapKeyTypeDescriptor().getType())) {
// maybe;
return true;
} else {
// no;
return false;
}
}
return ConversionUtils.canConvertElements(sourceType.getMapKeyTypeDescriptor(), targetType.getMapKeyTypeDescriptor(), conversionService);
}
private boolean canConvertValue(TypeDescriptor sourceType, TypeDescriptor targetType) {
if (targetType.getMapValueTypeDescriptor() == null) {
// yes
return true;
}
if (sourceType.getMapValueTypeDescriptor() == null) {
// maybe
return true;
}
boolean canConvert = conversionService.canConvert(sourceType.getMapValueTypeDescriptor(), targetType.getMapValueTypeDescriptor());
if (canConvert) {
// yes
return true;
} else {
if (sourceType.getMapValueTypeDescriptor().getType().isAssignableFrom(targetType.getMapValueTypeDescriptor().getType())) {
// maybe;
return true;
} else {
// no;
return false;
}
}
return ConversionUtils.canConvertElements(sourceType.getMapValueTypeDescriptor(), targetType.getMapValueTypeDescriptor(), conversionService);
}
private Object convertKey(Object sourceKey, TypeDescriptor sourceType, TypeDescriptor targetType) {

14
org.springframework.core/src/main/java/org/springframework/core/convert/support/ObjectToArrayConverter.java

@ -44,19 +44,7 @@ final class ObjectToArrayConverter implements ConditionalGenericConverter { @@ -44,19 +44,7 @@ final class ObjectToArrayConverter implements ConditionalGenericConverter {
}
public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) {
boolean canConvert = conversionService.canConvert(sourceType, targetType.getElementTypeDescriptor());
if (canConvert) {
// yes
return true;
} else {
if (sourceType.getType().isAssignableFrom(targetType.getElementTypeDescriptor().getType())) {
// maybe;
return true;
} else {
// no;
return false;
}
}
return ConversionUtils.canConvertElements(sourceType, targetType.getElementTypeDescriptor(), conversionService);
}
public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {

18
org.springframework.core/src/main/java/org/springframework/core/convert/support/ObjectToCollectionConverter.java

@ -46,23 +46,7 @@ final class ObjectToCollectionConverter implements ConditionalGenericConverter { @@ -46,23 +46,7 @@ final class ObjectToCollectionConverter implements ConditionalGenericConverter {
}
public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) {
if (targetType.getElementTypeDescriptor() == null) {
// yes
return true;
}
boolean canConvert = conversionService.canConvert(sourceType, targetType.getElementTypeDescriptor());
if (canConvert) {
// yes
return true;
} else {
if (sourceType.getType().isAssignableFrom(targetType.getElementTypeDescriptor().getType())) {
// maybe;
return true;
} else {
// no;
return false;
}
}
return ConversionUtils.canConvertElements(sourceType, targetType.getElementTypeDescriptor(), conversionService);
}
@SuppressWarnings("unchecked")

Loading…
Cancel
Save