[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