Class TabledUserDefinedPredicateFactory

java.lang.Object
org.projog.core.predicate.udp.TabledUserDefinedPredicateFactory
All Implemented Interfaces:
PredicateFactory, UserDefinedPredicateFactory

public final class TabledUserDefinedPredicateFactory extends Object implements UserDefinedPredicateFactory
  • Constructor Details

  • Method Details

    • addFirst

      public void addFirst(ClauseModel clauseModel)
      Description copied from interface: UserDefinedPredicateFactory
      Adds a clause to the beginning of the predicate's list of clauses.
      Specified by:
      addFirst in interface UserDefinedPredicateFactory
      Parameters:
      clauseModel - the clause to add to the beginning of the predicate
    • addLast

      public void addLast(ClauseModel clauseModel)
      Description copied from interface: UserDefinedPredicateFactory
      Adds a clause to the end of the predicate's list of clauses.
      Specified by:
      addLast in interface UserDefinedPredicateFactory
      Parameters:
      clauseModel - the clause to add to the end of the predicate
    • isRetryable

      public boolean isRetryable()
      Description copied from interface: PredicateFactory
      Should instances of this implementation be re-evaluated when backtracking?

      Some goals (e.g. X is 1) are only meant to be evaluated once (the statement is either true or false) while others (e.g. repeat(3)) are meant to be evaluated multiple times. For instances of Predicate that are designed to possibly have Predicate.evaluate() called on them multiple times for the same individual query this method should return true. For instances of Predicate that are designed to only be evaluated once per individual query this method should return false.

      Specified by:
      isRetryable in interface PredicateFactory
      Returns:
      true if an attempt should be made to re-evaluate instances of implementing classes when backtracking, false otherwise
    • getPredicateKey

      public PredicateKey getPredicateKey()
      Description copied from interface: UserDefinedPredicateFactory
      Returns the key for the predicate this object represents
      Specified by:
      getPredicateKey in interface UserDefinedPredicateFactory
      Returns:
      the key for the predicate this object represents
    • getImplications

      public org.projog.core.predicate.udp.ImplicationsIterator getImplications()
      Description copied from interface: UserDefinedPredicateFactory
      Returns an iterator over the clauses in the predicate in proper sequence.
      Specified by:
      getImplications in interface UserDefinedPredicateFactory
      Returns:
      an iterator over the clauses in the predicate in proper sequence.
    • isDynamic

      public boolean isDynamic()
      Description copied from interface: UserDefinedPredicateFactory
      Returns true is this predicate is dynamic.

      A "dynamic" predicate is a user defined predicate that can have clauses added or removed after is first defined.

      Specified by:
      isDynamic in interface UserDefinedPredicateFactory
      Returns:
      true is this predicate is dynamic
    • getClauseModel

      public ClauseModel getClauseModel(int index)
      Description copied from interface: UserDefinedPredicateFactory
      Returns the clause at the specified position in this predicate's list of clauses.
      Specified by:
      getClauseModel in interface UserDefinedPredicateFactory
      Parameters:
      index - index of the clause to return
      Returns:
      the clause at the specified position in this predicate's list of clauses or null if out of bounds
    • getPredicate

      public Predicate getPredicate(Term term)
      Description copied from interface: PredicateFactory
      Returns a Predicate to be used in the evaluation of a goal.
      Specified by:
      getPredicate in interface PredicateFactory
      Parameters:
      term - the term containing the arguments to use in the evaluation of the goal
      Returns:
      Predicate to be used in the evaluation of the goal
      See Also:
    • compile

      public void compile()
      Specified by:
      compile in interface UserDefinedPredicateFactory