Package org.springframework.data.convert
Class CustomConversions
java.lang.Object
org.springframework.data.convert.CustomConversions
Value object to capture custom conversion. That is essentially a
List
of converters and some additional logic
around them. The converters build up two sets of types which store-specific basic types can be converted into and
from. These types will be considered simple ones (which means they neither need deeper inspection nor nested
conversion. Thus, the CustomConversions
also act as factory for SimpleTypeHolder
.- Since:
- 2.0
- Author:
- Oliver Gierke, Thomas Darimont, Christoph Strobl, Mark Paluch, Xeno Amess
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static class
Value object holding the actualCustomConversions.StoreConversions
and customconverters
configured for registration.protected static class
Value class tying together aCustomConversions.ConverterRegistration
and itsorigin
to allow fine grained registration based on store supported types.static class
Value type to capture store-specific extensions to theCustomConversions
. -
Constructor Summary
ConstructorsConstructorDescriptionCustomConversions
(CustomConversions.ConverterConfiguration converterConfiguration) CustomConversions
(CustomConversions.StoreConversions storeConversions, Collection<?> converters) Creates a newCustomConversions
instance registering all given user defined converters and selectingconverters
fromCustomConversions.StoreConversions
depending onstore simple types
only considering those that either convert to/from a store supported type. -
Method Summary
Modifier and TypeMethodDescriptiongetCustomWriteTarget
(Class<?> sourceType) Returns the target type to convert to in case we have a custom conversion registered to convert the given source type into a store native one.getCustomWriteTarget
(Class<?> sourceType, Class<?> requestedTargetType) Returns the target type we can read an inject of the given source type to.<DV,
SV, C extends PersistentProperty<C>, VCC extends ValueConversionContext<C>>
PropertyValueConverter<DV,SV, VCC> getPropertyValueConverter
(C property) Delegate to obtain thePropertyValueConverter
for the given property fromPropertyValueConversions
.Returns the underlyingSimpleTypeHolder
.boolean
hasCustomReadTarget
(Class<?> sourceType, Class<?> targetType) Returns whether we have a custom conversion registered to read the given source into the given target type.boolean
hasCustomWriteTarget
(Class<?> sourceType) Returns whether we have a custom conversion registered to readsourceType
into a native type.boolean
hasCustomWriteTarget
(Class<?> sourceType, Class<?> targetType) Returns whether we have a custom conversion registered to read an object of the given source type into an object of the given native target type.boolean
hasPropertyValueConverter
(PersistentProperty<?> property) Delegate check if aPropertyValueConverter
for the given property is present viaPropertyValueConversions
.boolean
isSimpleType
(Class<?> type) Returns whether the given type is considered to be simple.void
registerConvertersIn
(ConverterRegistry conversionService) Populates the givenGenericConversionService
with the converters registered.
-
Constructor Details
-
CustomConversions
- Parameters:
converterConfiguration
- theCustomConversions.ConverterConfiguration
to apply.- Since:
- 2.3
-
CustomConversions
public CustomConversions(CustomConversions.StoreConversions storeConversions, Collection<?> converters) Creates a newCustomConversions
instance registering all given user defined converters and selectingconverters
fromCustomConversions.StoreConversions
depending onstore simple types
only considering those that either convert to/from a store supported type.- Parameters:
storeConversions
- must not be null.converters
- must not be null.
-
-
Method Details
-
getSimpleTypeHolder
Returns the underlyingSimpleTypeHolder
.- Returns:
-
isSimpleType
Returns whether the given type is considered to be simple. That means it's either a general simple type or we have a writingConverter
registered for a particular type.- Parameters:
type
-- Returns:
- See Also:
-
registerConvertersIn
Populates the givenGenericConversionService
with the converters registered.- Parameters:
conversionService
-
-
hasPropertyValueConverter
Delegate check if aPropertyValueConverter
for the given property is present viaPropertyValueConversions
.- Parameters:
property
- must not be null.- Returns:
- true if a specific
PropertyValueConverter
is available. - Since:
- 2.7
- See Also:
-
getPropertyValueConverter
@Nullable public <DV,SV, PropertyValueConverter<DV,C extends PersistentProperty<C>, VCC extends ValueConversionContext<C>> SV, getPropertyValueConverterVCC> (C property) Delegate to obtain thePropertyValueConverter
for the given property fromPropertyValueConversions
.- Type Parameters:
DV
- domain-specific typeSV
- store-native typeC
- conversion context type- Parameters:
property
- must not be null.- Returns:
- the suitable
PropertyValueConverter
or null if none available. - Since:
- 2.7
- See Also:
-
getCustomWriteTarget
Returns the target type to convert to in case we have a custom conversion registered to convert the given source type into a store native one.- Parameters:
sourceType
- must not be null- Returns:
-
getCustomWriteTarget
Returns the target type we can read an inject of the given source type to. The returned type might be a subclass of the given expected type though. IfrequestedTargetType
is null we will simply return the first target type matching or null if no conversion can be found.- Parameters:
sourceType
- must not be nullrequestedTargetType
- must not be null.- Returns:
-
hasCustomWriteTarget
Returns whether we have a custom conversion registered to readsourceType
into a native type. The returned type might be a subclass of the given expected type though.- Parameters:
sourceType
- must not be null- Returns:
-
hasCustomWriteTarget
Returns whether we have a custom conversion registered to read an object of the given source type into an object of the given native target type.- Parameters:
sourceType
- must not be null.targetType
- must not be null.- Returns:
-
hasCustomReadTarget
Returns whether we have a custom conversion registered to read the given source into the given target type.- Parameters:
sourceType
- must not be nulltargetType
- must not be null- Returns:
-