Class DroolsExistsTriConstraintStream<Solution_,​A,​B,​C>

  • All Implemented Interfaces:
    org.optaplanner.constraint.streams.common.tri.InnerTriConstraintStream<A,​B,​C>, org.optaplanner.core.api.score.stream.ConstraintStream, org.optaplanner.core.api.score.stream.tri.TriConstraintStream<A,​B,​C>

    public final class DroolsExistsTriConstraintStream<Solution_,​A,​B,​C>
    extends DroolsAbstractTriConstraintStream<Solution_,​A,​B,​C>
    • Method Detail

      • guaranteesDistinct

        public boolean guaranteesDistinct()
      • createLeftHandSide

        public TriLeftHandSide<A,​B,​C> createLeftHandSide()
        Description copied from class: DroolsAbstractConstraintStream
        Some constructs in the Drools executable model may not be reused between different rules. They are, among others, variable instances and beta indexes. Therefore an instance of AbstractLeftHandSide must never be used to create more than one rule. Therefore every constraint stream re-creates the entire chain of left hand sides every time a new rule is built. It is then left up to Drools to node-share everything it can.
        Specified by:
        createLeftHandSide in class DroolsAbstractConstraintStream<Solution_,​TriLeftHandSide<A,​B,​C>>
        Returns:
        never null, different instance on every call