Interface BiConstraintCollector<A,B,ResultContainer_,Result_>
- Type Parameters:
A- the type of the first fact of the tuple in the sourceBiConstraintStreamB- the type of the second fact of the tuple in the sourceBiConstraintStreamResultContainer_- the mutable accumulation type (often hidden as an implementation detail)Result_- the type of the fact of the tuple in the destinationConstraintStreamIt 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 Summary
Modifier and TypeMethodDescription@NonNull TriFunction<ResultContainer_,A, B, Runnable> A lambda that extracts data from the matched facts, accumulates it in the result container and returns an undo operation for that accumulation.@NonNull Function<ResultContainer_,Result_> finisher()A lambda that converts the result container into the result.@NonNull Supplier<ResultContainer_>supplier()A lambda that creates the result container, one for each group key combination.
-
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, accumulator()B, Runnable> 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.
-