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

pag at mulgara.org pag at mulgara.org
Tue Mar 25 05:11:13 UTC 2008


Author: pag
Date: 2008-03-24 22:11:12 -0700 (Mon, 24 Mar 2008)
New Revision: 705

Modified:
   branches/mgr-61-sparql/src/jar/resolver/java/org/mulgara/resolver/DefaultConstraintHandlers.java
Log:
Added in handlers for ConstraintFilter.

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-03-25 05:10:31 UTC (rev 704)
+++ branches/mgr-61-sparql/src/jar/resolver/java/org/mulgara/resolver/DefaultConstraintHandlers.java	2008-03-25 05:11:12 UTC (rev 705)
@@ -77,6 +77,7 @@
 class DefaultConstraintHandlers
 {
   /** Logger.  */
+  @SuppressWarnings("unused")
   private static final Logger logger = Logger.getLogger(DefaultConstraintHandlers.class.getName());
 
   static void initializeHandlers() {
@@ -87,6 +88,7 @@
     initializeConstraintLocalizations();
   }
 
+  @SuppressWarnings("unchecked")
   static void initializeModelResolutionHandlers() {
     ConstraintOperations.addModelResolutionHandlers(new NVPair[]
       {
@@ -129,6 +131,7 @@
       });
   }
 
+  @SuppressWarnings("unchecked")
   static void initializeConstraintResolutionHandlers() {
     ConstraintOperations.addConstraintResolutionHandlers(new NVPair[]
       {
@@ -186,14 +189,11 @@
             assert constraintElem != null;
             if (constraintElem.equals(Variable.FROM)) {
               return ConstraintOperations.resolveModelExpression(context, modelExpr, (Constraint)constraintExpr);
-            }
-            else if (constraintElem instanceof URIReference) {
+            } else if (constraintElem instanceof URIReference) {
               return ConstraintOperations.resolveModelExpression(context, new ModelResource(((URIReference)constraintElem).getURI()), (Constraint)constraintExpr);
-            }
-            else if (constraintElem instanceof LocalNode) {
+            } else if (constraintElem instanceof LocalNode) {
               return context.resolve(null, (ConstraintImpl)constraintExpr);
-            }
-            else if (constraintElem instanceof Variable) {
+            } else if (constraintElem instanceof Variable) {
               return context.resolve(null, (ConstraintImpl)constraintExpr);
             }
             else {
@@ -235,9 +235,20 @@
             return ExhaustiveTransitiveFunction.infer(context, (TransitiveConstraint)constraintExpr, modelExpr, context.getResolverSession());
           }
         }),
+        new NVPair(ConstraintFilter.class, new ConstraintResolutionHandler() {
+          public Tuples resolve(QueryEvaluationContext context, ModelExpression modelExpr, ConstraintExpression constraintExpr) throws Exception {
+            Tuples unfiltered = ConstraintOperations.resolveConstraintExpression(context, modelExpr, ((ConstraintFilter)constraintExpr).getUnfilteredConstraint());
+            try {
+              return TuplesOperations.filter(unfiltered, ((ConstraintFilter)constraintExpr).getFilter(), context);
+            } finally {
+              unfiltered.close();
+            }
+          }
+        }),
       });
   }
 
+  @SuppressWarnings("unchecked")
   static void initializeConstraintBindingHandlers() {
     ConstraintOperations.addConstraintBindingHandlers(new NVPair[]
       {
@@ -285,6 +296,11 @@
             return new ConstraintNegation(ConstraintOperations.replace(bindings, (Constraint)constraintExpr));
           }
         }),
+        new NVPair(ConstraintFilter.class, new ConstraintBindingHandler() {
+          public ConstraintExpression bindVariables(Map bindings, ConstraintExpression constraintExpr) throws Exception {
+            return new ConstraintFilter(ConstraintOperations.replace(bindings, (Constraint)constraintExpr), ((ConstraintFilter)constraintExpr).getFilter());
+          }
+        }),
         new NVPair(ConstraintConjunction.class, new ConstraintBindingHandler() {
           public ConstraintExpression bindVariables(Map bindings, ConstraintExpression constraintExpr) throws Exception {
             return new ConstraintConjunction(ConstraintOperations.replaceOperationArgs(bindings, (ConstraintOperation)constraintExpr));
@@ -304,6 +320,7 @@
       });
   }
 
+  @SuppressWarnings("unchecked")
   static void initializeConstraintModelRewrites() {
     ConstraintOperations.addConstraintModelRewrites(new NVPair[]
       {
@@ -320,6 +337,7 @@
       });
   }
 
+  @SuppressWarnings("unchecked")
   static void initializeConstraintLocalizations() {
     ConstraintOperations.addConstraintLocalizations(new NVPair[]
       {




More information about the Mulgara-svn mailing list