Class AbstractForEachUniNode<A>

    • Constructor Detail

      • AbstractForEachUniNode

        public AbstractForEachUniNode​(Class<A> forEachClass,
                                      TupleLifecycle<UniTuple<A>> nextNodesTupleLifecycle,
                                      int outputStoreSize)
    • Method Detail

      • insert

        public void insert​(A a)
      • update

        public abstract void update​(A a)
      • innerUpdate

        protected final void innerUpdate​(A a,
                                         UniTuple<A> tuple)
      • retract

        public void retract​(A a)
      • getPropagator

        public Propagator getPropagator()
        Description copied from class: AbstractNode
        Instead of calling the propagation directly from here, we export the propagation queue and allow BavetConstraintSession to call it. This is done with the idea that Propagator only has two implementations (unlike AbstractNode with myriad implementations) and therefore JVM call site optimizations will kick in to make the method dispatch faster.
        Specified by:
        getPropagator in class AbstractNode
        Returns:
        never null; the PropagationQueue in use by this node
      • getForEachClass

        public final Class<A> getForEachClass()