All Classes and Interfaces
Class
Description
AbstractConcatNode<LeftTuple_ extends AbstractTuple,RightTuple_ extends AbstractTuple,OutTuple_ extends AbstractTuple>
Implements the concat operation.
AbstractConstraint<Solution_,Constraint_ extends AbstractConstraint<Solution_,Constraint_,ConstraintFactory_>,ConstraintFactory_ extends InnerConstraintFactory<Solution_,Constraint_>>
FP streams implementation of
ScoreDirectorFactory.AbstractFlattenLastNode<InTuple_ extends AbstractTuple,OutTuple_ extends AbstractTuple,EffectiveItem_,FlattenedItem_>
Filtering nodes are expensive.
AbstractGroupNode<InTuple_ extends AbstractTuple,OutTuple_ extends AbstractTuple,GroupKey_,ResultContainer_,Result_>
This class has two direct children:
AbstractIndexedIfExistsNode and AbstractUnindexedIfExistsNode.There is a strong likelihood that any change to this class, which is not related to indexing,
should also be made to
AbstractUnindexedIfExistsNode.There is a strong likelihood that any change to this class, which is not related to indexing,
should also be made to
AbstractUnindexedJoinNode.This class has two direct children:
AbstractIndexedJoinNode and AbstractUnindexedJoinNode.Keeps track of the working score and constraint matches for a single constraint session.
A tuple is an out tuple in exactly one node and an in tuple in one or more nodes.
There is a strong likelihood that any change made to this class
should also be made to
AbstractIndexedIfExistsNode.There is a strong likelihood that any change made to this class
should also be made to
AbstractIndexedJoinNode.The type is public to make it easier for Bavet-specific minimal bug reproducers to be created.
FP streams implementation of
ScoreDirector, which only recalculates the Score
of the part of the working solution that changed,
instead of the going through the entire PlanningSolution.Combs an array of
BiJoiner instances into a mergedJoiner and a mergedFiltering.Allows creating
ConstraintMatch instances lazily if and only if they are required by the end user.GroupNodeConstructor.GroupBy0Mapping2CollectorNodeBuilder<CollectorA_,CollectorB_,Tuple_ extends AbstractTuple>
GroupNodeConstructor.GroupBy0Mapping3CollectorNodeBuilder<CollectorA_,CollectorB_,CollectorC_,Tuple_ extends AbstractTuple>
GroupNodeConstructor.GroupBy0Mapping4CollectorNodeBuilder<CollectorA_,CollectorB_,CollectorC_,CollectorD_,Tuple_ extends AbstractTuple>
GroupNodeConstructor.GroupBy1Mapping1CollectorNodeBuilder<KeyA_,CollectorB_,Tuple_ extends AbstractTuple>
GroupNodeConstructor.GroupBy1Mapping2CollectorNodeBuilder<KeyA_,CollectorB_,CollectorC_,Tuple_ extends AbstractTuple>
GroupNodeConstructor.GroupBy1Mapping3CollectorNodeBuilder<KeyA_,CollectorB_,CollectorC_,CollectorD_,Tuple_ extends AbstractTuple>
GroupNodeConstructor.GroupBy2Mapping1CollectorNodeBuilder<KeyA_,KeyB_,CollectorC_,Tuple_ extends AbstractTuple>
GroupNodeConstructor.GroupBy2Mapping2CollectorNodeBuilder<KeyA_,KeyB_,CollectorC_,CollectorD_,Tuple_ extends AbstractTuple>
GroupNodeConstructor.GroupBy3Mapping0CollectorNodeBuilder<KeyA_,KeyB_,KeyC_,Tuple_ extends AbstractTuple>
GroupNodeConstructor.GroupBy3Mapping1CollectorNodeBuilder<KeyA_,KeyB_,KeyC_,CollectorD_,Tuple_ extends AbstractTuple>
GroupNodeConstructor.GroupBy4Mapping0CollectorNodeBuilder<KeyA_,KeyB_,KeyC_,KeyD_,Tuple_ extends AbstractTuple>
An indexer for entity or fact
X,
maps a property or a combination of properties of X, denoted by indexProperties,
to all instances of X that match those properties,
depending on the the indexer type (equal, lower than, ...).Index properties are cached in tuples and each tuple carries its unique instance.
Combs an array of
PentaJoiner instances into a mergedJoiner and a mergedFiltering.A propagation queue is an ordered collection of items that need to be sent to the next node.
Propagator is an interface that exposes the
PropagationQueue to BavetConstraintSession.Combs an array of
QuadJoiner instances into a mergedJoiner and a mergedFiltering.Determines the behavior of joins and conditional propagation
based on whether they are coming off of a constraint stream started by
either
ConstraintFactory.from(Class)
or ConstraintFactory.forEach(Class)
family of methods.The implementation moves tuples directly into an either retract, update or insert queue,
without any option of moving between the queues.
Combs an array of
TriJoiner instances into a mergedJoiner and a mergedFiltering.There are several valid ways how an impacter could be called from a constraint stream:
.penalize(..., (int) 1)
.penalizeLong(..., (int) 1)
.penalizeLong(..., (long) 1)
.penalizeBigDecimal(..., (int) 1)
.penalizeBigDecimal(..., (long) 1)
.penalizeBigDecimal(..., BigDecimal.ONE)
Plus reward variants of the above.
An implementation of this interface can throw an UnsupportedOperationException
for the method types it doesn't support.WeightedScoreImpacter.BigDecimalImpactFunction<Score_ extends Score<Score_>,Context_ extends ScoreContext<Score_,?>>
WeightedScoreImpacter.IntImpactFunction<Score_ extends Score<Score_>,Context_ extends ScoreContext<Score_,?>>
WeightedScoreImpacter.LongImpactFunction<Score_ extends Score<Score_>,Context_ extends ScoreContext<Score_,?>>