Interface Scheduler<QD extends QueryableData>

Type Parameters:
QD - the queryable data type handled by this scheduler
All Known Implementing Classes:
SimpleDynamicScheduler

public interface Scheduler<QD extends QueryableData>
A scheduler gives the next part of the conjunction to evaluate given the current level on the backtrack. This order can either be static or dynamic and can change according to executions.
Author:
Guillaume Perution-Kihli
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns an independent copy of this scheduler.
    boolean
    hasNext(int level)
    Indicates whether another query remains to evaluate at the supplied level.
    next(int level, Substitution currentSolution)
    Returns the next prepared query to evaluate at the supplied level.
  • Method Details

    • next

      PreparedFOQuery<? extends FOFormula, QD> next(int level, Substitution currentSolution) throws EvaluationException
      Returns the next prepared query to evaluate at the supplied level.
      Parameters:
      level - the current level
      currentSolution - the current solution
      Returns:
      the next element to evaluate at the given level
      Throws:
      EvaluationException - if the scheduler cannot prepare the next query
    • hasNext

      boolean hasNext(int level)
      Indicates whether another query remains to evaluate at the supplied level.
      Parameters:
      level - the current level
      Returns:
      true iff there is a next element to evaluate at the given level
    • deepCopy

      Scheduler<QD> deepCopy()
      Returns an independent copy of this scheduler.
      Returns:
      an independent copy of this Scheduler so that another branch can evolve in parallel without interference.