org.optaplanner.constraint.streams.bavet.uni.AbstractGroupUniNode Maven / Gradle / Ivy
package org.optaplanner.constraint.streams.bavet.uni;
import java.util.function.BiFunction;
import java.util.function.Function;
import org.optaplanner.constraint.streams.bavet.common.AbstractGroupNode;
import org.optaplanner.constraint.streams.bavet.common.Tuple;
import org.optaplanner.constraint.streams.bavet.common.TupleLifecycle;
import org.optaplanner.core.api.score.stream.uni.UniConstraintCollector;
abstract class AbstractGroupUniNode
extends AbstractGroupNode, OutTuple_, MutableOutTuple_, GroupKey_, ResultContainer_, Result_> {
private final BiFunction accumulator;
protected AbstractGroupUniNode(int groupStoreIndex,
Function, GroupKey_> groupKeyFunction,
UniConstraintCollector collector,
TupleLifecycle nextNodesTupleLifecycle) {
super(groupStoreIndex, groupKeyFunction,
collector == null ? null : collector.supplier(),
collector == null ? null : collector.finisher(),
nextNodesTupleLifecycle);
accumulator = collector == null ? null : collector.accumulator();
}
@Override
protected final Runnable accumulate(ResultContainer_ resultContainer, UniTuple tuple) {
return accumulator.apply(resultContainer, tuple.getFactA());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy