Interface QuadConstraintCollector<A,B,C,D,ResultContainer_,Result_>
- Type Parameters:
A
- the type of the first fact of the tuple in the sourceQuadConstraintStream
B
- the type of the second fact of the tuple in the sourceQuadConstraintStream
C
- the type of the third fact of the tuple in the sourceQuadConstraintStream
D
- the type of the fourth fact of the tuple in the sourceQuadConstraintStream
ResultContainer_
- the mutable accumulation type (often hidden as an implementation detail)Result_
- the type of the fact of the tuple in the destinationConstraintStream
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 QuadConstraintCollector<A,B,C,D,ResultContainer_,Result_>
Usually created with
ConstraintCollectors
.
Used by QuadConstraintStream.groupBy(QuadFunction, QuadConstraintCollector)
, ...
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 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
PentaFunction<ResultContainer_,A, accumulator()B, C, D, 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
-