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 classValue object holding the actualCustomConversions.StoreConversionsand customconvertersconfigured for registration.protected static classValue class tying together aCustomConversions.ConverterRegistrationand itsoriginto allow fine grained registration based on store supported types.static classValue type to capture store-specific extensions to theCustomConversions. -
Constructor Summary
ConstructorsConstructorDescriptionCustomConversions(CustomConversions.ConverterConfiguration converterConfiguration) CustomConversions(CustomConversions.StoreConversions storeConversions, Collection<?> converters) Creates a newCustomConversionsinstance registering all given user defined converters and selectingconvertersfromCustomConversions.StoreConversionsdepending onstore simple typesonly 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 thePropertyValueConverterfor the given property fromPropertyValueConversions.Returns the underlyingSimpleTypeHolder.booleanhasCustomReadTarget(Class<?> sourceType, Class<?> targetType) Returns whether we have a custom conversion registered to read the given source into the given target type.booleanhasCustomWriteTarget(Class<?> sourceType) Returns whether we have a custom conversion registered to readsourceTypeinto a native type.booleanhasCustomWriteTarget(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.booleanhasPropertyValueConverter(PersistentProperty<?> property) Delegate check if aPropertyValueConverterfor the given property is present viaPropertyValueConversions.booleanisSimpleType(Class<?> type) Returns whether the given type is considered to be simple.voidregisterConvertersIn(ConverterRegistry conversionService) Populates the givenGenericConversionServicewith the converters registered.
-
Constructor Details
-
CustomConversions
- Parameters:
converterConfiguration- theCustomConversions.ConverterConfigurationto apply.- Since:
- 2.3
-
CustomConversions
public CustomConversions(CustomConversions.StoreConversions storeConversions, Collection<?> converters) Creates a newCustomConversionsinstance registering all given user defined converters and selectingconvertersfromCustomConversions.StoreConversionsdepending onstore simple typesonly 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 writingConverterregistered for a particular type.- Parameters:
type-- Returns:
- See Also:
-
registerConvertersIn
Populates the givenGenericConversionServicewith the converters registered.- Parameters:
conversionService-
-
hasPropertyValueConverter
Delegate check if aPropertyValueConverterfor the given property is present viaPropertyValueConversions.- Parameters:
property- must not be null.- Returns:
- true if a specific
PropertyValueConverteris 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 thePropertyValueConverterfor 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
PropertyValueConverteror 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. IfrequestedTargetTypeis 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 readsourceTypeinto 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:
-