Class ObjectProjectionBinder
- All Implemented Interfaces:
ProjectionBinder
The content of the object projection is defined in the constructor parameter type
by another ProjectionConstructor
.
Compared to the basic composite projection
,
an object projection is bound to a specific object field,
and thus it yields zero, one or many values, as many as there are objects in the targeted object field.
Therefore, you must take care of using a List<...>
as your constructor parameter type
if the object field is multi-valued.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
bind
(ProjectionBindingContext context) Binds a constructor parameter to a projection.static ObjectProjectionBinder
create()
Creates anObjectProjectionBinder
to be passed toMethodParameterMappingStep.projection(ProjectionBinder)
.static ObjectProjectionBinder
Creates anObjectProjectionBinder
to be passed toMethodParameterMappingStep.projection(ProjectionBinder)
.filter
(TreeFilterDefinition filter) toString()
-
Method Details
-
create
Creates anObjectProjectionBinder
to be passed toMethodParameterMappingStep.projection(ProjectionBinder)
.This method requires the projection constructor class to be compiled with the
-parameters
flag to infer the field path from the name of the constructor parameter being bound. If this compiler flag is not used, usecreate(String)
instead and pass the field path explicitly.- Returns:
- The binder.
-
create
Creates anObjectProjectionBinder
to be passed toMethodParameterMappingStep.projection(ProjectionBinder)
.- Parameters:
fieldPath
- The path to the index field whose value will be extracted. Whennull
, defaults to the name of the constructor parameter being bound, if it can be retrieved (requires the class to be compiled with the-parameters
flag; otherwise a nullfieldPath
will lead to a failure).- Returns:
- The binder.
-
toString
-
filter
- Parameters:
filter
- The filter to apply to determine which nested index field projections should be included in the projection.- Returns:
this
, for method chaining.- See Also:
-
bind
Description copied from interface:ProjectionBinder
Binds a constructor parameter to a projection.The context passed in parameter provides various information about the constructor parameter being bound. Implementations are expected to take advantage of that information and to call one of the
definition*(...)
methods on the context to set the projection.- Specified by:
bind
in interfaceProjectionBinder
- Parameters:
context
- A context object providing information about the constructor parameter being bound, and expecting a call to one of itsdefinition*(...)
methods.
-