Interface UniConstraintCollector<A,ResultContainer_,Result_>
-
- Type Parameters:
A- the type of the one and only fact of the tuple in the sourceUniConstraintStreamResultContainer_- the mutable accumulation type (often hidden as an implementation detail)Result_- the type of the fact of the tuple in the destinationConstraintStream
- All Known Implementing Classes:
DefaultUniConstraintCollector
public interface UniConstraintCollector<A,ResultContainer_,Result_>Usually created withConstraintCollectors. Used byUniConstraintStream.groupBy(Function, UniConstraintCollector), ...Loosely based on JDK's
Collector, but it returns an undo operation for each accumulation to enable incremental score calculation inconstraint streams.- See Also:
ConstraintCollectors
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description BiFunction<ResultContainer_,A,Runnable>accumulator()A lambda that extracts data from the matched fact, accumulates it in the result container and returns an undo operation for that accumulation.Function<ResultContainer_,Result_>finisher()A lambda that converts the result container into the result.Supplier<ResultContainer_>supplier()A lambda that creates the result container, one for each group key combination.
-
-
-
Method Detail
-
supplier
Supplier<ResultContainer_> supplier()
A lambda that creates the result container, one for each group key combination.- Returns:
- never null
-
accumulator
BiFunction<ResultContainer_,A,Runnable> accumulator()
A lambda that extracts data from the matched fact, 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 fact no longer matches.
-
finisher
Function<ResultContainer_,Result_> finisher()
A lambda that converts the result container into the result.- Returns:
- null when the result would be invalid, such as maximum value from an empty container.
-
-