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.boolean
isIncluded
(String fieldPath) Optional
<? extends ProjectionBindingMultiContext> multi()
Deprecated.UsecontainerElement()
and various bind methods of this context instead.default Object
Deprecated.Useparam(String, Class)
instead.<T> T
paramOptional
(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 theP
values 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 theP
values 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
- ABeanHolder
containing 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:
true
if the field with the given path is included according to surroundingfilters
(seeObjectProjection.includePaths()
,ObjectProjection.excludePaths()
,ObjectProjection.includeDepth()
, ...).false
otherwise. Projections on excluded fields should be replaced with a constant projection returningnull
or 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.