## Uses of Interface
org.springframework.data.util.TypeInformation

Packages that use TypeInformation
org.springframework.data.convert: General purpose conversion framework to read objects from a data store abstraction and write it back.
org.springframework.data.mapping: Base package for the mapping subsystem.
org.springframework.data.mapping.context: Mapping context API and implementation base classes.
org.springframework.data.mapping.model: Core implementation of the mapping subsystem's model.
org.springframework.data.querydsl.binding: Base classes to implement CDI support for repositories.
org.springframework.data.repository.core: Core abstractions for repository implementation.
org.springframework.data.repository.core.support: Base classes to implement repositories for various data stores.
org.springframework.data.repository.util: Utility classes for repository implementations.
org.springframework.data.util: Core utility APIs such as a type information framework to resolve generic types.

### Uses of TypeInformation in org.springframework.data.convert

Methods in org.springframework.data.convert that return TypeInformation
`protected TypeInformation<?>` DefaultTypeMapper.`getFallbackTypeFor(S source)` Returns the type fallback `TypeInformation` in case none could be extracted from the given source.
`TypeInformation<?>` DefaultTypeMapper.`readType(S source)`
`TypeInformation<?>` TypeMapper.`readType(S source)` Reads the `TypeInformation` from the given source.
`<T> TypeInformation<? extends T>` DefaultTypeMapper.`readType(S source, TypeInformation<T> basicType)`
`<T> TypeInformation<? extends T>` TypeMapper.`readType(S source, TypeInformation<T> defaultType)` Returns the `TypeInformation` from the given source if it is a more concrete type than the given default one.
`TypeInformation<?>` MappingContextTypeInformationMapper.`resolveTypeFrom(Alias alias)`
`TypeInformation<?>` ConfigurableTypeInformationMapper.`resolveTypeFrom(Alias alias)`
`TypeInformation<?>` TypeInformationMapper.`resolveTypeFrom(Alias alias)` Returns the actual `TypeInformation` to be used for the given alias.
`TypeInformation<?>` SimpleTypeInformationMapper.`resolveTypeFrom(Alias alias)` Returns the `TypeInformation` that shall be used when the given `String` value is found as type hint.

Methods in org.springframework.data.convert with parameters of type TypeInformation
`Alias` MappingContextTypeInformationMapper.`createAliasFor(TypeInformation<?> type)`
`Alias` ConfigurableTypeInformationMapper.`createAliasFor(TypeInformation<?> type)`
`Alias` TypeInformationMapper.`createAliasFor(TypeInformation<?> type)` Returns the alias to be used for the given `TypeInformation`.
`Alias` SimpleTypeInformationMapper.`createAliasFor(TypeInformation<?> type)` Turn the given type information into the String representation that shall be stored.
`protected Alias` DefaultTypeMapper.`getAliasFor(TypeInformation<?> info)` Returns the alias to be used for the given `TypeInformation`.
`<T> TypeInformation<? extends T>` DefaultTypeMapper.`readType(S source, TypeInformation<T> basicType)`
`<T> TypeInformation<? extends T>` TypeMapper.`readType(S source, TypeInformation<T> defaultType)` Returns the `TypeInformation` from the given source if it is a more concrete type than the given default one.
`void` DefaultTypeMapper.`writeType(TypeInformation<?> info, S sink)`
`void` TypeMapper.`writeType(TypeInformation<?> type, S dbObject)` Writes type information for the given `TypeInformation` into the given sink.

### Uses of TypeInformation in org.springframework.data.mapping

Methods in org.springframework.data.mapping that return TypeInformation
`TypeInformation<?>` PropertyPath.`getOwningType()` Returns the owning type of the `PropertyPath`.
`TypeInformation<?>` PropertyReferenceException.`getType()` Returns the type the property could not be found on.
`TypeInformation<T>` PreferredConstructor.Parameter.`getType()` Returns the `TypeInformation` of the parameter.
`TypeInformation<T>` PersistentEntity.`getTypeInformation()` Returns the `TypeInformation` backing this `PersistentEntity`.
`TypeInformation<?>` PropertyPath.`getTypeInformation()`
`TypeInformation<?>` PersistentProperty.`getTypeInformation()` Returns the `TypeInformation` of the property.

Methods in org.springframework.data.mapping that return types with arguments of type TypeInformation
`Iterable<? extends TypeInformation<?>>` PersistentProperty.`getPersistentEntityTypes()` Returns the `TypeInformation` if the property references a `PersistentEntity`.

Methods in org.springframework.data.mapping with parameters of type TypeInformation
`static PropertyPath` PropertyPath.`from(String source, TypeInformation<?> type)` Extracts the `PropertyPath` chain from the given source `String` and `TypeInformation`.

Constructors in org.springframework.data.mapping with parameters of type TypeInformation
Constructor and Description
`Parameter(String name, TypeInformation<T> type, Annotation[] annotations, PersistentEntity<T,P> entity)` Creates a new `PreferredConstructor.Parameter` with the given name, `TypeInformation` as well as an array of `Annotation`s.
`PropertyReferenceException(String propertyName, TypeInformation<?> type, List<PropertyPath> alreadyResolvedPah)` Creates a new `PropertyReferenceException`.

### Uses of TypeInformation in org.springframework.data.mapping.context

Methods in org.springframework.data.mapping.context that return TypeInformation
`TypeInformation<?>` InvalidPersistentPropertyPath.`getType()` Returns the type the source property path was attempted to be resolved on.
`TypeInformation<?>` PersistentEntities.`getTypeUltimatelyReferredToBy(PersistentProperty<?> property)` Returns the type the given `PersistentProperty` ultimately refers to.

Methods in org.springframework.data.mapping.context that return types with arguments of type TypeInformation
`Collection<TypeInformation<?>>` AbstractMappingContext.`getManagedTypes()`
`Streamable<TypeInformation<?>>` PersistentEntities.`getManagedTypes()` Returns all `TypeInformation` exposed by the registered `MappingContext`s.
`Collection<TypeInformation<?>>` MappingContext.`getManagedTypes()` Returns the `TypeInformation`s for all `PersistentEntity`s in the `MappingContext`.

Methods in org.springframework.data.mapping.context with parameters of type TypeInformation
`protected Optional<E>` AbstractMappingContext.`addPersistentEntity(TypeInformation<?> typeInformation)` Adds the given `TypeInformation` to the `MappingContext`.
`protected abstract <T> E` AbstractMappingContext.`createPersistentEntity(TypeInformation<T> typeInformation)` Creates the concrete `PersistentEntity` instance.
`E` AbstractMappingContext.`getPersistentEntity(TypeInformation<?> type)`
`E` MappingContext.`getPersistentEntity(TypeInformation<?> type)` Returns a `PersistentEntity` for the given `TypeInformation`.
`default E` MappingContext.`getRequiredPersistentEntity(TypeInformation<?> type)` Returns a `PersistentEntity` for the given `TypeInformation`.
`protected boolean` AbstractMappingContext.`shouldCreatePersistentEntityFor(TypeInformation<?> type)` Returns whether a `PersistentEntity` instance should be created for the given `TypeInformation`.

Constructors in org.springframework.data.mapping.context with parameters of type TypeInformation
Constructor and Description
`InvalidPersistentPropertyPath(String source, TypeInformation<?> type, String unresolvableSegment, PersistentPropertyPath<? extends PersistentProperty<?>> resolvedPath)` Creates a new `InvalidPersistentPropertyPath` for the given resolved path and message.

### Uses of TypeInformation in org.springframework.data.mapping.model

Methods in org.springframework.data.mapping.model that return TypeInformation
`TypeInformation<?>` AbstractPersistentProperty.`getTypeInformation()`
`TypeInformation<T>` BasicPersistentEntity.`getTypeInformation()`

Methods in org.springframework.data.mapping.model that return types with arguments of type TypeInformation
`Iterable<? extends TypeInformation<?>>` AbstractPersistentProperty.`getPersistentEntityTypes()`

Methods in org.springframework.data.mapping.model with parameters of type TypeInformation
`static Property` Property.`of(TypeInformation<?> type, Field field)` Creates a new `Property` backed by the given field.
`static Property` Property.`of(TypeInformation<?> type, Field field, PropertyDescriptor descriptor)` Creates a new `Property` backed by the given `Field` and `PropertyDescriptor`.
`static Property` Property.`of(TypeInformation<?> type, PropertyDescriptor descriptor)` Creates a new `Property` for the given `PropertyDescriptor`.

Constructors in org.springframework.data.mapping.model with parameters of type TypeInformation
Constructor and Description
`BasicPersistentEntity(TypeInformation<T> information)` Creates a new `BasicPersistentEntity` from the given `TypeInformation`.
`BasicPersistentEntity(TypeInformation<T> information, Comparator<P> comparator)` Creates a new `BasicPersistentEntity` for the given `TypeInformation` and `Comparator`.

### Uses of TypeInformation in org.springframework.data.querydsl.binding

Methods in org.springframework.data.querydsl.binding with parameters of type TypeInformation
`QuerydslBindings` QuerydslBindingsFactory.`createBindingsFor(TypeInformation<?> domainType)` Creates the `QuerydslBindings` to be used using for the given domain type.
`QuerydslBindings` QuerydslBindingsFactory.`createBindingsFor(TypeInformation<?> domainType, Class<? extends QuerydslBinderCustomizer<?>> customizer)` Creates the `QuerydslBindings` to be used using for the given domain type and a pre-defined `QuerydslBinderCustomizer`.
`com.querydsl.core.types.Predicate` QuerydslPredicateBuilder.`getPredicate(TypeInformation<?> type, MultiValueMap<String,String> values, QuerydslBindings bindings)` Creates a Querydsl `Predicate` for the given values, `QuerydslBindings` on the given `TypeInformation`.

### Uses of TypeInformation in org.springframework.data.repository.core

Methods in org.springframework.data.repository.core that return TypeInformation
`TypeInformation<?>` RepositoryMetadata.`getReturnType(Method method)` Returns the type `Method` return type as it is declared in the repository.

### Uses of TypeInformation in org.springframework.data.repository.core.support

Methods in org.springframework.data.repository.core.support that return TypeInformation
`TypeInformation<?>` AbstractRepositoryMetadata.`getReturnType(Method method)`

### Uses of TypeInformation in org.springframework.data.repository.util

Methods in org.springframework.data.repository.util that return TypeInformation
`static TypeInformation<?>` QueryExecutionConverters.`unwrapWrapperTypes(TypeInformation<?> type)` Recursively unwraps well known wrapper types from the given `TypeInformation`.
`static TypeInformation<?>` ReactiveWrapperConverters.`unwrapWrapperTypes(TypeInformation<?> type)` Recursively unwraps well known wrapper types from the given `TypeInformation`.

Methods in org.springframework.data.repository.util with parameters of type TypeInformation
`static TypeInformation<?>` QueryExecutionConverters.`unwrapWrapperTypes(TypeInformation<?> type)` Recursively unwraps well known wrapper types from the given `TypeInformation`.
`static TypeInformation<?>` ReactiveWrapperConverters.`unwrapWrapperTypes(TypeInformation<?> type)` Recursively unwraps well known wrapper types from the given `TypeInformation`.

### Uses of TypeInformation in org.springframework.data.util

Classes in org.springframework.data.util that implement TypeInformation
`class` `ClassTypeInformation<S>` `TypeInformation` for a plain `Class`.
`class` `ParentTypeAwareTypeInformation<S>` Base class for `TypeInformation` implementations that need parent type awareness.

Methods in org.springframework.data.util that return TypeInformation
`protected TypeInformation<?>` ParentTypeAwareTypeInformation.`createInfo(Type fieldType)`
`static <S> TypeInformation<S>` ClassTypeInformation.`fromReturnTypeOf(Method method)` Creates a `TypeInformation` from the given method's return type.
`TypeInformation<?>` TypeInformation.`getActualType()` Transparently returns the `Map` value type if the type is a `Map`, returns the component type if the type `isCollectionLike()` or the simple type if none of this applies.
`TypeInformation<?>` TypeInformation.`getComponentType()` Returns the component type for `Collection`s or the key type for `Map`s.
`TypeInformation<?>` TypeInformation.`getMapValueType()` Will return the type of the value in case the underlying type is a `Map`.
`TypeInformation<?>` TypeInformation.`getProperty(String property)` Returns the property information for the property with the given name.
`default TypeInformation<?>` TypeInformation.`getRequiredActualType()` Transparently returns the `Map` value type if the type is a `Map`, returns the component type if the type `isCollectionLike()` or the simple type if none of this applies.
`default TypeInformation<?>` TypeInformation.`getRequiredComponentType()` Returns the component type for `Collection`s, the key type for `Map`s or the single generic type if available.
`default TypeInformation<?>` TypeInformation.`getRequiredMapValueType()` Will return the type of the value in case the underlying type is a `Map` or throw `IllegalStateException` if the map value type cannot be resolved.
`default TypeInformation<?>` TypeInformation.`getRequiredProperty(String property)` Returns the property information for the property with the given name or throw `IllegalArgumentException` if the type information cannot be resolved.
`default TypeInformation<?>` TypeInformation.`getRequiredSuperTypeInformation(Class<?> superType)` Returns the `TypeInformation` for the given raw super type.
`TypeInformation<?>` TypeInformation.`getReturnType(Method method)` Returns a `TypeInformation` for the return type of the given `Method`.
`TypeInformation<?>` TypeInformation.`getSuperTypeInformation(Class<?> superType)` Returns the `TypeInformation` for the given raw super type.
`TypeInformation<? extends S>` TypeInformation.`specialize(ClassTypeInformation<?> type)` Specializes the given (raw) `ClassTypeInformation` using the context of the current potentially parameterized type, basically turning the given raw type into a parameterized one.
`TypeInformation<? extends S>` ClassTypeInformation.`specialize(ClassTypeInformation<?> type)`
`static TypeInformation<?>` NullableWrapperConverters.`unwrapActualType(TypeInformation<?> type)` Recursively unwraps well known wrapper types from the given `TypeInformation`.

Methods in org.springframework.data.util that return types with arguments of type TypeInformation
`List<TypeInformation<?>>` TypeInformation.`getParameterTypes(Constructor<?> constructor)` Returns the `TypeInformation`s for the parameters of the given `Constructor`.
`List<TypeInformation<?>>` TypeInformation.`getParameterTypes(Method method)` Returns the `TypeInformation`s for the parameters of the given `Method`.
`List<TypeInformation<?>>` TypeInformation.`getTypeArguments()` Returns the `TypeInformation` for the type arguments of the current `TypeInformation`.

Methods in org.springframework.data.util with parameters of type TypeInformation
`boolean` TypeInformation.`isAssignableFrom(TypeInformation<?> target)` Returns if the current `TypeInformation` can be safely assigned to the given one.
`boolean` ClassTypeInformation.`isAssignableFrom(TypeInformation<?> target)`
`static TypeInformation<?>` NullableWrapperConverters.`unwrapActualType(TypeInformation<?> type)` Recursively unwraps well known wrapper types from the given `TypeInformation`.