Class AggregateOperationBuilder<A>

  • Type Parameters:
    A - the type of the accumulator

    public final class AggregateOperationBuilder<A>
    extends java.lang.Object
    A builder object that can be used to construct the definition of an aggregate operation in a step-by-step manner. Please refer to AggregateOperation.withCreate() for more details.
    Since:
    Jet 3.0
    • Method Detail

      • andAccumulate

        @Nonnull
        public <T> AggregateOperationBuilder.Arity1<T,​A,​java.lang.Void> andAccumulate​(@Nonnull
                                                                                                  BiConsumerEx<? super A,​? super T> accumulateFn)
        Registers the AggregateOperation1.accumulateFn() accumulate} primitive. Also selects the fixed-arity variant of the aggregate operation.

        This method is synonymous with andAccumulate0(), but makes more sense when defining a simple, arity-1 aggregate operation.

        Type Parameters:
        T - the expected type of input item
        Parameters:
        accumulateFn - the accumulate primitive, parameters are (accumulator, item). It must be stateless and cooperative.
        Returns:
        a new builder object that captures the T0 type parameter
      • andAccumulate0

        @Nonnull
        public <T0> AggregateOperationBuilder.Arity1<T0,​A,​java.lang.Void> andAccumulate0​(@Nonnull
                                                                                                     BiConsumerEx<? super A,​? super T0> accumulateFn0)
        Registers the accumulate primitive for stream-0. Also selects the fixed-arity variant of the aggregate operation.
        Type Parameters:
        T0 - the expected type of item in stream-0
        Parameters:
        accumulateFn0 - the accumulate primitive for stream-0. It must be stateless and cooperative.
        Returns:
        a new builder object that captures the T0 type parameter
      • varArity

        public AggregateOperationBuilder.VarArity<A,​java.lang.Void> varArity()
        Selects the variable-arity variant for this aggregate operation builder.
        Returns:
        a new builder object for variable-arity aggregate operations which has the createFn of the current builder
      • andAccumulate

        @Nonnull
        public <T> AggregateOperationBuilder.VarArity<A,​java.lang.Void> andAccumulate​(@Nonnull
                                                                                            Tag<T> tag,
                                                                                            @Nonnull
                                                                                            BiConsumerEx<? super A,​? super T> accumulateFn)
        Registers the accumulate primitive for the stream tagged with the supplied tag. Also selects the variable-arity variant of the aggregate operation.
        Type Parameters:
        T - the expected type of input item
        Parameters:
        tag - the tag of the associated input stream
        accumulateFn - the accumulate primitive. It must be stateless and cooperative.
        Returns:
        a new builder object for variable-arity aggregate operations which has the createFn of the current builder