public abstract class BavetAbstractTriConstraintStream<Solution_,A,B,C> extends BavetAbstractConstraintStream<Solution_> implements TriConstraintStream<A,B,C>
| Modifier and Type | Field and Description |
|---|---|
protected List<BavetAbstractTriConstraintStream<Solution_,A,B,C>> |
childStreamList |
constraintFactory| Constructor and Description |
|---|
BavetAbstractTriConstraintStream(BavetConstraintFactory<Solution_> constraintFactory) |
buildConstraint, buildConstraintConfigurable, buildConstraintWeightExtractor, buildConstraintWeightExtractor, getConstraintFactory, getFromStreamList, validateConstraintIdclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitpenalize, penalizeBigDecimal, penalizeConfigurable, penalizeConfigurableBigDecimal, penalizeConfigurableLong, penalizeLong, reward, rewardBigDecimal, rewardConfigurable, rewardConfigurableBigDecimal, rewardConfigurableLong, rewardLonggetConstraintFactory, penalize, penalizeConfigurable, reward, rewardConfigurablepublic BavetAbstractTriConstraintStream(BavetConstraintFactory<Solution_> constraintFactory)
protected void addChildStream(BavetAbstractTriConstraintStream<Solution_,A,B,C> childStream)
public BavetAbstractTriConstraintStream<Solution_,A,B,C> filter(TriPredicate<A,B,C> predicate)
TriConstraintStreamTriPredicate
and match if TriPredicate.test(Object, Object, Object) returns true.
Important: This is slower and less scalable than BiConstraintStream#join(UniConstraintStream, TriJoiner[])
with a proper TriJoiner predicate (such as Joiners.equal(BiFunction, Function),
because the latter applies hashing and/or indexing, so it doesn't create every combination just to filter it out.
filter in interface TriConstraintStream<A,B,C>predicate - never nullpublic Constraint penalize(String constraintPackage, String constraintName, Score<?> constraintWeight)
ConstraintStreamConstraintStream.penalize(String, Score).penalize in interface ConstraintStreamconstraintPackage - never nullconstraintName - never nullconstraintWeight - never nullpublic Constraint penalize(String constraintPackage, String constraintName, Score<?> constraintWeight, ToIntTriFunction<A,B,C> matchWeigher)
TriConstraintStreampenalize in interface TriConstraintStream<A,B,C>constraintPackage - never nullconstraintName - never nullconstraintWeight - never nullmatchWeigher - never nullpublic Constraint penalizeLong(String constraintPackage, String constraintName, Score<?> constraintWeight, ToLongTriFunction<A,B,C> matchWeigher)
TriConstraintStreampenalizeLong in interface TriConstraintStream<A,B,C>constraintPackage - never nullconstraintName - never nullconstraintWeight - never nullmatchWeigher - never nullpublic Constraint penalizeBigDecimal(String constraintPackage, String constraintName, Score<?> constraintWeight, TriFunction<A,B,C,BigDecimal> matchWeigher)
TriConstraintStreampenalizeBigDecimal in interface TriConstraintStream<A,B,C>constraintPackage - never nullconstraintName - never nullconstraintWeight - never nullmatchWeigher - never nullpublic Constraint penalizeConfigurable(String constraintPackage, String constraintName)
ConstraintStreamConstraintStream.penalizeConfigurable(String).penalizeConfigurable in interface ConstraintStreamconstraintPackage - never nullconstraintName - never nullpublic Constraint penalizeConfigurable(String constraintPackage, String constraintName, ToIntTriFunction<A,B,C> matchWeigher)
TriConstraintStreampenalizeConfigurable in interface TriConstraintStream<A,B,C>constraintPackage - never nullconstraintName - never nullmatchWeigher - never nullpublic Constraint penalizeConfigurableLong(String constraintPackage, String constraintName, ToLongTriFunction<A,B,C> matchWeigher)
TriConstraintStreampenalizeConfigurableLong in interface TriConstraintStream<A,B,C>constraintPackage - never nullconstraintName - never nullmatchWeigher - never nullpublic Constraint penalizeConfigurableBigDecimal(String constraintPackage, String constraintName, TriFunction<A,B,C,BigDecimal> matchWeigher)
TriConstraintStreampenalizeConfigurableBigDecimal in interface TriConstraintStream<A,B,C>constraintPackage - never nullconstraintName - never nullmatchWeigher - never nullpublic Constraint reward(String constraintPackage, String constraintName, Score<?> constraintWeight)
ConstraintStreamConstraintStream.reward(String, Score).reward in interface ConstraintStreamconstraintPackage - never nullconstraintName - never nullconstraintWeight - never nullpublic Constraint reward(String constraintPackage, String constraintName, Score<?> constraintWeight, ToIntTriFunction<A,B,C> matchWeigher)
TriConstraintStreamTriConstraintStream.reward(String, Score, ToIntTriFunction).reward in interface TriConstraintStream<A,B,C>constraintPackage - never nullconstraintName - never nullmatchWeigher - never nullpublic Constraint rewardLong(String constraintPackage, String constraintName, Score<?> constraintWeight, ToLongTriFunction<A,B,C> matchWeigher)
TriConstraintStreamrewardLong in interface TriConstraintStream<A,B,C>constraintPackage - never nullconstraintName - never nullmatchWeigher - never nullpublic Constraint rewardBigDecimal(String constraintPackage, String constraintName, Score<?> constraintWeight, TriFunction<A,B,C,BigDecimal> matchWeigher)
TriConstraintStreamrewardBigDecimal in interface TriConstraintStream<A,B,C>constraintPackage - never nullconstraintName - never nullmatchWeigher - never nullpublic Constraint rewardConfigurable(String constraintPackage, String constraintName)
ConstraintStreamConstraintStream.rewardConfigurable(String).rewardConfigurable in interface ConstraintStreamconstraintPackage - never nullconstraintName - never nullpublic Constraint rewardConfigurable(String constraintPackage, String constraintName, ToIntTriFunction<A,B,C> matchWeigher)
TriConstraintStreamrewardConfigurable in interface TriConstraintStream<A,B,C>constraintPackage - never nullconstraintName - never nullmatchWeigher - never nullpublic Constraint rewardConfigurableLong(String constraintPackage, String constraintName, ToLongTriFunction<A,B,C> matchWeigher)
TriConstraintStreamrewardConfigurableLong in interface TriConstraintStream<A,B,C>constraintPackage - never nullconstraintName - never nullmatchWeigher - never nullpublic Constraint rewardConfigurableBigDecimal(String constraintPackage, String constraintName, TriFunction<A,B,C,BigDecimal> matchWeigher)
TriConstraintStreamrewardConfigurableBigDecimal in interface TriConstraintStream<A,B,C>constraintPackage - never nullconstraintName - never nullmatchWeigher - never nullpublic BavetAbstractTriNode<A,B,C> createNodeChain(BavetNodeBuildPolicy<Solution_> buildPolicy, Score<?> constraintWeight, int nodeOrder, BavetAbstractTriNode<A,B,C> parentNode)
protected BavetAbstractTriNode<A,B,C> processNode(BavetNodeBuildPolicy<Solution_> buildPolicy, int nodeOrder, BavetAbstractTriNode<A,B,C> parentNode, BavetAbstractTriNode<A,B,C> node)
protected void createChildNodeChains(BavetNodeBuildPolicy<Solution_> buildPolicy, Score<?> constraintWeight, int nodeOrder, BavetAbstractTriNode<A,B,C> node)
protected abstract BavetAbstractTriNode<A,B,C> createNode(BavetNodeBuildPolicy<Solution_> buildPolicy, Score<?> constraintWeight, int nodeOrder, BavetAbstractTriNode<A,B,C> parentNode)
Copyright © 2006–2019 JBoss by Red Hat. All rights reserved.