Class AbstractSingleResultPredicate
- java.lang.Object
-
- org.projog.core.predicate.AbstractSingleResultPredicate
-
- All Implemented Interfaces:
KnowledgeBaseConsumer,PredicateFactory
- Direct Known Subclasses:
AbstractNumericComparisonPredicate,AddArithmeticOperator,AddExpressionFactory,AddPredicateFactory,AddUserDefinedArithmeticOperator,AlterSpyPoint,AppendListOfLists,Arg,Assert,AtomicListConcat,Close,Compare,Conjunction.OptimisedSingletonConjuction,Consult,ConsultList,ConvertTime,CopyTerm,CurrentInput,CurrentOutput,Debugging,Delete,Dif,Distinct,Dynamic,EnsureLoaded,Equal,Erase,ExtremumList,Fail,FindAll,Flag,Flatten,Functor,GetChar,GetCode,GetTime,In,InsertRecord,Is,Is.PreprocessedIs,Is.Unify,IsAtom,IsAtomic,IsCompound,IsFloat,IsInteger,IsList,IsNonVar,IsNumber,IsVar,KeySort,Listing,MemberCheck,MemberCheck.PreprocessedMemberCheck,NewLine,NoDebug,Not,Not.OptimisedNot,NoTrace,NotStrictEquality,NotUnifiable,NumberVars,NumericConstraintPredicate,Once,Once.OptimisedOnce,Op,Open,PairsElements,PredSort,PutChar,Read,RetractAll,See,Seen,SetInput,SetOutput,Sort,SortAsSet,StrictEquality,SubList,Subset,SubtractFromList,Tab,Tell,TermGreaterThan,TermGreaterThanOrEqual,TermLessThan,TermLessThanOrEqual,TermSplit,Throw,Told,Trace,True,UnifyWithOccursCheck,Univ,Write,WriteCanonical,Writef
public abstract class AbstractSingleResultPredicate extends java.lang.Object implements PredicateFactory, KnowledgeBaseConsumer
Superclass of "plug-in" predicates that are not re-evaluated as part of backtracking.Provides a skeletal implementation of
PredicateFactoryandPredicate. No attempt to find multiple solutions will be made as part of backtracking asisRetryable()always returnsfalse.
-
-
Field Summary
Fields Modifier and Type Field Description private KnowledgeBaseknowledgeBase
-
Constructor Summary
Constructors Constructor Description AbstractSingleResultPredicate()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.IllegalArgumentExceptioncreateWrongNumberOfArgumentsException(int numberOfArguments)protected booleanevaluate()protected booleanevaluate(Term arg)booleanevaluate(Term[] args)protected booleanevaluate(Term arg1, Term arg2)protected booleanevaluate(Term arg1, Term arg2, Term arg3)protected booleanevaluate(Term arg1, Term arg2, Term arg3, Term arg4)protected ArithmeticOperatorsgetArithmeticOperators()protected FileHandlesgetFileHandles()protected KnowledgeBasegetKnowledgeBase()protected OperandsgetOperands()PredicategetPredicate(Term[] args)Returns aPredicateto be used in the evaluation of a goal.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()
-
evaluate
public final boolean evaluate(Term[] args)
-
evaluate
protected boolean evaluate()
-
evaluate
protected boolean evaluate(Term arg)
-
createWrongNumberOfArgumentsException
private java.lang.IllegalArgumentException createWrongNumberOfArgumentsException(int numberOfArguments)
-
isRetryable
public final 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
evaluate(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()
-
-