Class AbstractPredicateFactory
- java.lang.Object
-
- org.projog.core.predicate.AbstractPredicateFactory
-
- All Implemented Interfaces:
KnowledgeBaseConsumer,PredicateFactory
- Direct Known Subclasses:
Append,AtomConcat,BagOf,Between,CharType,Conjunction,Conjunction.OptimisedRetryableConjuction,CurrentPredicate,Cut,Disjunction,Fold,IfThen,Inspect,Last,Length,Limit,Member,Nth,Recorded,RepeatInfinitely,RepeatSetAmount,Resolve,Reverse,Select,SetOf
public abstract class AbstractPredicateFactory extends java.lang.Object implements PredicateFactory, KnowledgeBaseConsumer
-
-
Field Summary
Fields Modifier and Type Field Description private KnowledgeBaseknowledgeBase
-
Constructor Summary
Constructors Constructor Description AbstractPredicateFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.IllegalArgumentExceptioncreateWrongNumberOfArgumentsException(int numberOfArguments)protected ArithmeticOperatorsgetArithmeticOperators()protected FileHandlesgetFileHandles()protected KnowledgeBasegetKnowledgeBase()protected OperandsgetOperands()protected PredicategetPredicate()protected PredicategetPredicate(Term arg)PredicategetPredicate(Term[] args)Returns aPredicateto be used in the evaluation of a goal.protected PredicategetPredicate(Term arg1, Term arg2)protected PredicategetPredicate(Term arg1, Term arg2, Term arg3)protected PredicategetPredicate(Term arg1, Term arg2, Term arg3, Term arg4)protected PredicatesgetPredicates()protected ProjogListenersgetProjogListeners()protected SpyPointsgetSpyPoints()protected TermFormattergetTermFormatter()protected voidinit()This method is called bysetKnowledgeBase(KnowledgeBase).booleanisRetryable()Should instances of this implementation be re-evaluated when backtracking?voidsetKnowledgeBase(KnowledgeBase knowledgeBase)Provides a reference to aKnowledgeBase.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.projog.core.predicate.PredicateFactory
isAlwaysCutOnBacktrack
-
-
-
-
Field Detail
-
knowledgeBase
private KnowledgeBase knowledgeBase
-
-
Method Detail
-
getPredicate
public final Predicate getPredicate(Term[] args)
Description copied from interface:PredicateFactoryReturns aPredicateto be used in the evaluation of a goal.- Specified by:
getPredicatein interfacePredicateFactory- Parameters:
args- the arguments to use in the evaluation of the goal- Returns:
- Predicate to be used in the evaluation of the goal
- See Also:
Predicate.evaluate()
-
getPredicate
protected Predicate getPredicate()
-
createWrongNumberOfArgumentsException
private java.lang.IllegalArgumentException createWrongNumberOfArgumentsException(int numberOfArguments)
-
isRetryable
public boolean isRetryable()
Description copied from interface:PredicateFactoryShould 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 ofPredicatethat are designed to possibly havePredicate.evaluate()called on them multiple times for the same individual query this method should returntrue. For instances ofPredicatethat are designed to only be evaluated once per individual query this method should returnfalse.- Specified by:
isRetryablein interfacePredicateFactory- Returns:
trueif an attempt should be made to re-evaluate instances of implementing classes when backtracking,falseotherwise
-
setKnowledgeBase
public final void setKnowledgeBase(KnowledgeBase knowledgeBase)
Description copied from interface:KnowledgeBaseConsumerProvides a reference to aKnowledgeBase.- Specified by:
setKnowledgeBasein interfaceKnowledgeBaseConsumer
-
init
protected void init()
This method is called bysetKnowledgeBase(KnowledgeBase).Can be overridden by subclasses to perform initialisation before any calls to
getPredicate(Term[])are made. AssetKnowledgeBase(KnowledgeBase)will have already been called before this method is invoked, overridden versions will be able to access theKnowledgeBaseusinggetKnowledgeBase().
-
getKnowledgeBase
protected final KnowledgeBase getKnowledgeBase()
-
getPredicates
protected final Predicates getPredicates()
-
getArithmeticOperators
protected final ArithmeticOperators getArithmeticOperators()
-
getProjogListeners
protected final ProjogListeners getProjogListeners()
-
getOperands
protected final Operands getOperands()
-
getTermFormatter
protected final TermFormatter getTermFormatter()
-
getSpyPoints
protected final SpyPoints getSpyPoints()
-
getFileHandles
protected final FileHandles getFileHandles()
-
-