@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
/ *
* Copyright 2008 - 2012 the original author or authors .
* Copyright 2008 - 2014 the original author or authors .
*
* Licensed under the Apache License , Version 2 . 0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
@ -31,11 +31,12 @@ import org.springframework.util.StringUtils;
@@ -31,11 +31,12 @@ import org.springframework.util.StringUtils;
/ * *
* { @link org . springframework . core . convert . converter . Converter } to convert arbitrary input into domain classes managed
* by Spring Data { @link CrudRepository } s . The implementation uses a { @link ConversionService } in turn to convert the
* by Spring Data { @link CrudRepository } s . The implementation uses a { @link ConversionService } in turn to convert the
* source type into the domain class ' id type which is then converted into a domain class object by using a
* { @link CrudRepository } .
*
* @author Oliver Gierke
* @author Thomas Darimont
* /
public class DomainClassConverter < T extends ConversionService & ConverterRegistry > implements
ConditionalGenericConverter , ApplicationContextAware {
@ -65,6 +66,10 @@ public class DomainClassConverter<T extends ConversionService & ConverterRegistr
@@ -65,6 +66,10 @@ public class DomainClassConverter<T extends ConversionService & ConverterRegistr
return null ;
}
if ( sourceType . equals ( targetType ) ) {
return source ;
}
Class < ? > domainType = targetType . getType ( ) ;
RepositoryInformation info = repositories . getRepositoryInformationFor ( domainType ) ;
@ -83,6 +88,10 @@ public class DomainClassConverter<T extends ConversionService & ConverterRegistr
@@ -83,6 +88,10 @@ public class DomainClassConverter<T extends ConversionService & ConverterRegistr
return false ;
}
if ( sourceType . equals ( targetType ) ) {
return true ;
}
return conversionService . canConvert ( sourceType . getType ( ) ,
repositories . getRepositoryInformationFor ( targetType . getType ( ) ) . getIdType ( ) ) ;
}