Interface ProjectionBindingContext
The context passed to
ProjectionBinder.bind(ProjectionBindingContext).- See Also:
-
Method Summary
Modifier and TypeMethodDescription<T> BeanHolder<? extends ProjectionDefinition<T>> createCompositeDefinition(Class<T> projectedType) default <T> BeanHolder<? extends ProjectionDefinition<T>> createObjectDefinition(String fieldPath, Class<T> projectedType, TreeFilterDefinition filter) <C,T> BeanHolder <? extends ProjectionDefinition<C>> createObjectDefinition(String fieldPath, Class<T> projectedType, TreeFilterDefinition filter, ProjectionCollector.Provider<T, C> collector) default <T> BeanHolder<? extends ProjectionDefinition<List<T>>> createObjectDefinitionMulti(String fieldPath, Class<T> projectedType, TreeFilterDefinition filter) Deprecated.<P,C> void definition(Class<P> expectedValueType, BeanHolder<? extends ProjectionDefinition<? extends C>> definitionHolder) Binds theconstructorParameter()to the given projection definition.<P,C> void definition(Class<P> expectedValueType, ProjectionDefinition<? extends C> definition) Binds theconstructorParameter()to the given projection definition.booleanisIncluded(String fieldPath) Optional<? extends ProjectionBindingMultiContext> multi()Deprecated.UsecontainerElement()and various bind methods of this context instead.default ObjectDeprecated.Useparam(String, Class)instead.<T> TparamOptional(String name) Deprecated.UseparamOptional(String, Class)instead.<T> Optional<T> paramOptional(String name, Class<T> paramType)
-
Method Details
-
definition
Binds theconstructorParameter()to the given projection definition.- Type Parameters:
P- The type of single projected value.C- The type of values returned by the projection. It may be the same asP, if it is a simple single-valued projection, or a type of the container if thePvalues are wrapped in some type of container (e.g.Optional<..>,Collection<..>..).- Parameters:
expectedValueType- The expected type of theconstructorParameter(), which must be compatible with the given projection definition. Hibernate Search will check that these expectations are met, and throw an exception if they are not.definition- A definition of the projection to bind to theconstructorParameter().
-
definition
<P,C> void definition(Class<P> expectedValueType, BeanHolder<? extends ProjectionDefinition<? extends C>> definitionHolder) Binds theconstructorParameter()to the given projection definition.- Type Parameters:
P- The type of single projected value.C- The type of values returned by the projection. It may be the same asP, if it is a simple single-valued projection, or a type of the container if thePvalues are wrapped in some type of container (e.g.Optional<..>,Collection<..>..).- Parameters:
expectedValueType- The expected type of theconstructorParameter(), which must be compatible with the given projection definition. Hibernate Search will check that these expectations are met, and throw an exception if they are not.definitionHolder- ABeanHoldercontaining the definition of the projection to bind to theconstructorParameter().
-
multi
Deprecated.UsecontainerElement()and various bind methods of this context instead.Inspects the type of theconstructorParameter()to determine if it may be bound to a multi-valued projection.- Returns:
- An optional containing a context that can be used to bind a projection
if the type of the
constructorParameter()can be bound to a multi-valued projection; an empty optional otherwise.
-
beanResolver
BeanResolver beanResolver()- Returns:
- A bean provider, allowing the retrieval of beans, including CDI/Spring DI beans when in the appropriate environment.
-
constructorParameter
- Returns:
- An entry point allowing to inspect the constructor parameter being bound to a projection.
-
containerElement
- Returns:
- An entry point allowing to inspect the constructor parameter container element being bound to a projection.
Returns non-empty optional only if a
constructorParameter()can be bound to a container-wrapped projection (be it a single-valued optional, or some multi-valued collection).
-
param
Deprecated.Useparam(String, Class)instead.- Parameters:
name- The name of the parameter.- Returns:
- The value provided for this parameter.
- Throws:
SearchException- If no value was provided for this parameter.- See Also:
-
param
- Type Parameters:
T- The type of the parameter.- Parameters:
name- The name of the parameter.paramType- The type of the parameter.- Returns:
- The value provided for this parameter.
- Throws:
SearchException- If no value was provided for this parameter.- See Also:
-
paramOptional
Deprecated.UseparamOptional(String, Class)instead.- Parameters:
name- The name of the parameter.- Returns:
- An optional containing the value provided for this parameter,
or
Optional.empty()if no value was provided for this parameter. - See Also:
-
paramOptional
- Type Parameters:
T- The type of the parameter.- Parameters:
name- The name of the parameter.paramType- The type of the parameter.- Returns:
- An optional containing the value provided for this parameter,
or
Optional.empty()if no value was provided for this parameter. - See Also:
-
createObjectDefinition
@Incubating default <T> BeanHolder<? extends ProjectionDefinition<T>> createObjectDefinition(String fieldPath, Class<T> projectedType, TreeFilterDefinition filter) - Parameters:
fieldPath- The (relative) path to an object field in the indexed document.projectedType- A type expected to have a corresponding projection mapping (e.g. usingProjectionConstructor).filter- The filter to apply to determine which nested index field projections should be included in the projection. SeeObjectProjection.includePaths(),ObjectProjection.excludePaths(),ObjectProjection.includeDepth(), ...- Returns:
- A single-valued object projection definition for the given type.
- Throws:
SearchException- If mapping the given type to a projection definition fails.- See Also:
-
createObjectDefinitionMulti
@Deprecated(since="8.0") @Incubating default <T> BeanHolder<? extends ProjectionDefinition<List<T>>> createObjectDefinitionMulti(String fieldPath, Class<T> projectedType, TreeFilterDefinition filter) Deprecated.- Parameters:
fieldPath- The (relative) path to an object field in the indexed document.projectedType- A type expected to have a corresponding projection mapping (e.g. usingProjectionConstructor).filter- The filter to apply to determine which nested index field projections should be included in the projection. SeeObjectProjection.includePaths(),ObjectProjection.excludePaths(),ObjectProjection.includeDepth(), ...- Returns:
- A multi-valued object projection definition for the given type.
- Throws:
SearchException- If mapping the given type to a projection definition fails.- See Also:
-
createObjectDefinition
@Incubating <C,T> BeanHolder<? extends ProjectionDefinition<C>> createObjectDefinition(String fieldPath, Class<T> projectedType, TreeFilterDefinition filter, ProjectionCollector.Provider<T, C> collector) - Parameters:
fieldPath- The (relative) path to an object field in the indexed document.projectedType- A type expected to have a corresponding projection mapping (e.g. usingProjectionConstructor).filter- The filter to apply to determine which nested index field projections should be included in the projection. SeeObjectProjection.includePaths(),ObjectProjection.excludePaths(),ObjectProjection.includeDepth(), ...- Returns:
- A container-wrapped object projection definition for the given type.
- Throws:
SearchException- If mapping the given type to a projection definition fails.- See Also:
-
createCompositeDefinition
@Incubating <T> BeanHolder<? extends ProjectionDefinition<T>> createCompositeDefinition(Class<T> projectedType) - Parameters:
projectedType- A type expected to have a corresponding projection mapping (e.g. usingProjectionConstructor)- Returns:
- A composite projection definition for the given type.
- Throws:
SearchException- If mapping the given type to a projection definition fails.- See Also:
-
isIncluded
- Parameters:
fieldPath- The (relative) path to an object field in the indexed document.- Returns:
trueif the field with the given path is included according to surroundingfilters(seeObjectProjection.includePaths(),ObjectProjection.excludePaths(),ObjectProjection.includeDepth(), ...).falseotherwise. Projections on excluded fields should be replaced with a constant projection returningnullor an empty list, as appropriate.
-
projectionCollectorProviderFactory
- Returns:
- An instance of a projection collector provider factory capable of supplying a collector provider based on a container and component types.
-
createObjectDefinition(String, Class, TreeFilterDefinition, ProjectionCollector.Provider)instead.