Interface DomainResultAssembler<J>

All Known Implementing Classes:
BasicResultAssembler, CoercingResultAssembler, TupleResultAssembler, UnfetchedBasicPartResultAssembler, UnfetchedResultAssembler

@Incubating(since="6.0", group="result-processing") @SPI({USE,IMPLEMENT,SUPPLY}) public interface DomainResultAssembler<J>
Responsible for "assembling" a result for inclusion in the domain query result. "Assembling" the result basically means building the result object (whatever that means for a specific result type) and returning it for injection into the result "row" currently being processed
See Also:
  • Method Details

    • assemble

      @Nullable J assemble(RowProcessingState rowProcessingState)
      The main "assembly" contract. Assemble the result and return it.
    • getAssembledJavaType

      JavaType<J> getAssembledJavaType()
      The JavaType describing the Java type that this assembler assembles.
    • resolveState

      default void resolveState(RowProcessingState rowProcessingState)
      This method is used to resolve the assembler's state, i.e. reading the result values, with some performance optimization when we don't need the result object itself
    • getInitializer

      @SPI(SUPPLY) @Nullable default Initializer<?> getInitializer()
      Supplies the initializer owned by this assembler, when one is required.
      See Also:
    • forEachResultAssembler

      default <X> void forEachResultAssembler(BiConsumer<Initializer<?>, X> consumer, X arg)
      Invokes the consumer with every initializer part of this assembler that returns true for Initializer.isResultInitializer().
    • isEager

      default boolean isEager()
    • hasLazySubInitializers

      default boolean hasLazySubInitializers()