[Mulgara-svn] r827 - in branches/mgr-61-sparql/src/jar: resolver/java/org/mulgara/resolver resolver-spi/java/org/mulgara/resolver/spi
pag at mulgara.org
pag at mulgara.org
Wed Apr 23 15:56:27 UTC 2008
Author: pag
Date: 2008-04-23 08:56:26 -0700 (Wed, 23 Apr 2008)
New Revision: 827
Modified:
branches/mgr-61-sparql/src/jar/resolver-spi/java/org/mulgara/resolver/spi/QueryEvaluationContext.java
branches/mgr-61-sparql/src/jar/resolver/java/org/mulgara/resolver/DefaultConstraintHandlers.java
Log:
Fixed the ModelResolutionHandler for ModelVariable to call into QueryEvaluationContext.resolve(). This was an infinite loop. A LocalQueryResolver.resolve() already existed to handle this, but the resolve() method in QueryEvaluationContext had not been overloaded to expose it. This overload required some casting on nulls in the ConstraintResolutionHandler for ConstraintImpl, so the compiler knows where the dispatch goes. Yes, a different method name would also work, but the operation is so similar that overloading makes sense here.
Modified: branches/mgr-61-sparql/src/jar/resolver/java/org/mulgara/resolver/DefaultConstraintHandlers.java
===================================================================
--- branches/mgr-61-sparql/src/jar/resolver/java/org/mulgara/resolver/DefaultConstraintHandlers.java 2008-04-23 08:34:46 UTC (rev 826)
+++ branches/mgr-61-sparql/src/jar/resolver/java/org/mulgara/resolver/DefaultConstraintHandlers.java 2008-04-23 15:56:26 UTC (rev 827)
@@ -130,7 +130,7 @@
new NVPair(ModelVariable.class, new ModelResolutionHandler() {
public Tuples resolve(QueryEvaluationContext context, ModelExpression modelExpr,
Constraint constraint) throws Exception {
- return ConstraintOperations.resolveModelExpression(context, (ModelVariable)modelExpr, constraint);
+ return context.resolve((ModelVariable)modelExpr, (Constraint)constraint);
}
})
});
@@ -209,9 +209,9 @@
} else if (constraintElem instanceof URIReference) {
return ConstraintOperations.resolveModelExpression(context, new ModelResource(((URIReference)constraintElem).getURI()), (Constraint)constraintExpr);
} else if (constraintElem instanceof LocalNode) {
- return context.resolve(null, (ConstraintImpl)constraintExpr);
+ return context.resolve((ModelResource)null, (ConstraintImpl)constraintExpr);
} else if (constraintElem instanceof Variable) {
- return context.resolve(null, (ConstraintImpl)constraintExpr);
+ return context.resolve((ModelResource)null, (ConstraintImpl)constraintExpr);
}
else {
throw new QueryException("Specified model not a URIReference/Variable: " + constraintElem +" is a " + constraintElem.getClass().getName() );
Modified: branches/mgr-61-sparql/src/jar/resolver-spi/java/org/mulgara/resolver/spi/QueryEvaluationContext.java
===================================================================
--- branches/mgr-61-sparql/src/jar/resolver-spi/java/org/mulgara/resolver/spi/QueryEvaluationContext.java 2008-04-23 08:34:46 UTC (rev 826)
+++ branches/mgr-61-sparql/src/jar/resolver-spi/java/org/mulgara/resolver/spi/QueryEvaluationContext.java 2008-04-23 15:56:26 UTC (rev 827)
@@ -81,6 +81,8 @@
*/
public Tuples resolve(ModelResource modelResource, Constraint constraint) throws QueryException;
+ public Tuples resolve(ModelVariable modelVariable, Constraint constraint) throws QueryException;
+
public Tuples resolve(ModelExpression modelExpression, ConstraintExpression constraintExpression) throws QueryException;
public ResolverSession getResolverSession();
More information about the Mulgara-svn
mailing list