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_>
As described by UniConstraintCollector, only for BiConstraintStream.
See Also:
  • Method Details

    • supplier

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

      @NonNull 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.
      Returns:
      the undo operation. This lambda is called when the facts no longer matches.
    • finisher

      @NonNull Function<ResultContainer_,Result_> finisher()
      A lambda that converts the result container into the result.