Class ExpressionFactories
- java.lang.Object
-
- org.projog.core.predicate.builtin.clp.ExpressionFactories
-
public final class ExpressionFactories extends java.lang.ObjectMaintains a collection ofExpressionFactoryinstances.This class provides a mechanism for "plugging in" or "injecting" implementations of
org.projog.clp.Expressionat runtime. This mechanism provides an easy way to configure and extend the CLP expressions supported by Projog.Each
KnowledgeBasehas at most one uniqueClpExpressionsinstance.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<PredicateKey,java.lang.String>factoryClassNamesprivate java.util.Map<PredicateKey,ExpressionFactory>factoryInstancesprivate KnowledgeBasekbprivate java.lang.Objectlock
-
Constructor Summary
Constructors Constructor Description ExpressionFactories(KnowledgeBase kb)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddExpressionFactory(PredicateKey key, java.lang.String operatorClassName)Associates aExpressionFactorywith thisKnowledgeBase.private ExpressionFactorygetExpressionFactory(PredicateKey key)private ExpressionFactoryinstantiateExpressionFactory(java.lang.String className)private ExpressionFactoryinstantiateExpressionFactory(PredicateKey key)org.projog.clp.ExpressiontoExpression(Term t, java.util.Set<ClpVariable> vars)
-
-
-
Field Detail
-
kb
private final KnowledgeBase kb
-
lock
private final java.lang.Object lock
-
factoryClassNames
private final java.util.Map<PredicateKey,java.lang.String> factoryClassNames
-
factoryInstances
private final java.util.Map<PredicateKey,ExpressionFactory> factoryInstances
-
-
Constructor Detail
-
ExpressionFactories
public ExpressionFactories(KnowledgeBase kb)
-
-
Method Detail
-
addExpressionFactory
public void addExpressionFactory(PredicateKey key, java.lang.String operatorClassName)
Associates aExpressionFactorywith thisKnowledgeBase.- Parameters:
key- The name and arity to associate theExpressionFactorywith.operatorClassName- The class name of theExpressionFactoryto be associated withkey.- Throws:
ProjogException- if there is already aExpressionFactoryassociated with thePredicateKey
-
toExpression
public org.projog.clp.Expression toExpression(Term t, java.util.Set<ClpVariable> vars)
-
getExpressionFactory
private ExpressionFactory getExpressionFactory(PredicateKey key)
-
instantiateExpressionFactory
private ExpressionFactory instantiateExpressionFactory(PredicateKey key)
-
instantiateExpressionFactory
private ExpressionFactory instantiateExpressionFactory(java.lang.String className)
-
-