Interface TriConstraintCollector<A,B,C,ResultContainer_,Result_>
- Type Parameters:
A- the type of the first fact of the tuple in the sourceTriConstraintStreamB- the type of the second fact of the tuple in the sourceTriConstraintStreamC- the type of the third fact of the tuple in the sourceTriConstraintStreamResultContainer_- 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 TriConstraintCollector<A,B,C,ResultContainer_,Result_>
As described by
UniConstraintCollector, only for TriConstraintStream.- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionA lambda that extracts data from the matched facts, accumulates it in the result container and returns an undo operation for that accumulation.finisher()A lambda that converts the result container into the result.supplier()A lambda that creates the result container, one for each group key combination.
-
Method Details
-
supplier
Supplier<ResultContainer_> supplier()A lambda that creates the result container, one for each group key combination.- Returns:
- never null
-
accumulator
QuadFunction<ResultContainer_,A, accumulator()B, C, 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:
- never null, the undo operation. This lambda is called when the facts no longer matches.
-
finisher
Function<ResultContainer_,Result_> finisher()A lambda that converts the result container into the result.- Returns:
- never null
-