[Mulgara-svn] r813 - branches/mgr-61-sparql/src/jar/resolver/java/org/mulgara/resolver

pag at mulgara.org pag at mulgara.org
Tue Apr 22 17:29:55 UTC 2008


Author: pag
Date: 2008-04-22 10:29:54 -0700 (Tue, 22 Apr 2008)
New Revision: 813

Modified:
   branches/mgr-61-sparql/src/jar/resolver/java/org/mulgara/resolver/DefaultConstraintHandlers.java
Log:
Added model resolution support for ModelVariable, constraint resolution for ConstraintIn, and removed the disabled ConstraintNegation

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-22 17:28:41 UTC (rev 812)
+++ branches/mgr-61-sparql/src/jar/resolver/java/org/mulgara/resolver/DefaultConstraintHandlers.java	2008-04-22 17:29:54 UTC (rev 813)
@@ -54,6 +54,7 @@
 
 // Local packages
 import org.mulgara.query.*;
+import org.mulgara.query.rdf.URIReferenceImpl;
 import org.mulgara.resolver.spi.ConstraintBindingHandler;
 import org.mulgara.resolver.spi.ConstraintLocalization;
 import org.mulgara.resolver.spi.ConstraintModelRewrite;
@@ -125,6 +126,12 @@
                                 Constraint constraint) throws Exception {
             return context.resolve((ModelResource)modelExpr, (Constraint)constraint);
           }
+        }),
+        new NVPair(ModelVariable.class, new ModelResolutionHandler() {
+          public Tuples resolve(QueryEvaluationContext context, ModelExpression modelExpr,
+                                Constraint constraint) throws Exception {
+            return ConstraintOperations.resolveModelExpression(context, (ModelVariable)modelExpr, constraint);
+          }
         })
       });
   }
@@ -211,22 +218,6 @@
             }
           }
         }),
-/*
-        new NVPair(ConstraintNegation.class, new ConstraintResolutionHandler() {
-          public Tuples resolve(QueryEvaluationContext context, ModelExpression modelExpr, ConstraintExpression constraintExpr) throws Exception {
-            if (((ConstraintNegation)constraintExpr).getModel().equals(Variable.FROM)) {
-              return ConstraintOperations.resolveModelExpression(context, modelExpr, (Constraint)constraintExpr);
-            } else {
-              ConstraintElement constraintElem = ((ConstraintNegation)constraintExpr).getElement(3);
-              if (constraintElem instanceof URIReference) {
-                return ConstraintOperations.resolveModelExpression(context, new ModelResource(((URIReference)constraintElem).getURI()), (Constraint)constraintExpr);
-              } else {
-                throw new QueryException("Specified model not a URIReference: " + constraintElem +" is a " + constraintElem.getClass().getName() );
-              }
-            }
-          }
-        }),
-*/
         new NVPair(WalkConstraint.class, new ConstraintResolutionHandler() {
           public Tuples resolve(QueryEvaluationContext context, ModelExpression modelExpr, ConstraintExpression constraintExpr) throws Exception {
             return WalkFunction.walk(context, (WalkConstraint)constraintExpr, modelExpr, context.getResolverSession());
@@ -257,6 +248,19 @@
             }
           }
         }),
+        new NVPair(ConstraintIn.class, new ConstraintResolutionHandler() {
+          public Tuples resolve(QueryEvaluationContext context, ModelExpression modelExpr, ConstraintExpression constraintExpr) throws Exception {
+            ConstraintIn constraint = (ConstraintIn)constraintExpr;
+            ModelExpression graph;
+            if (constraint.getGraph() instanceof URIReferenceImpl) {
+              graph = new ModelResource(((URIReferenceImpl)constraint.getGraph()).getURI());
+            } else {
+              assert constraint.getGraph() instanceof Variable;
+              graph = new ModelVariable((Variable)constraint.getGraph());
+            }
+            return ConstraintOperations.resolveConstraintExpression(context, graph, constraint.getConstraintParam());
+          }
+        }),
       });
   }
 




More information about the Mulgara-svn mailing list