Interface BiConstraintCollector<A,​B,​ResultContainer_,​Result_>

  • Type Parameters:
    A - the type of the first fact of the tuple in the source BiConstraintStream
    B - the type of the second fact of the tuple in the source BiConstraintStream
    ResultContainer_ - the mutable accumulation type (often hidden as an implementation detail)
    Result_ - the type of the fact of the tuple in the destination ConstraintStream It is recommended that this type be deeply immutable. Not following this recommendation may lead to hard-to-debug hashing issues down the stream, especially if this value is ever used as a group key.

    public interface BiConstraintCollector<A,​B,​ResultContainer_,​Result_>
    Usually created with ConstraintCollectors. Used by BiConstraintStream.groupBy(BiFunction, BiConstraintCollector), ...

    Loosely based on JDK's Collector, but it returns an undo operation for each accumulation to enable incremental score calculation in constraint streams.

    See Also:
    • Method Detail

      • supplier

        Supplier<ResultContainer_> supplier()
        A lambda that creates the result container, one for each group key combination.
        never null
      • accumulator

        TriFunction<ResultContainer_,​A,​B,​Runnable> accumulator()
        A lambda that extracts data from the matched facts, accumulates it in the result container and returns an undo operation for that accumulation.
        never null, the undo operation. This lambda is called when the facts no longer matches.