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

pag at mulgara.org pag at mulgara.org
Fri Apr 25 04:10:25 UTC 2008


Author: pag
Date: 2008-04-24 21:10:24 -0700 (Thu, 24 Apr 2008)
New Revision: 851

Modified:
   branches/mgr-61-sparql/src/jar/resolver/java/org/mulgara/resolver/DefaultConstraintHandlers.java
Log:
Updated the call to optionalJoin to handle a LinkedList of arguments, to be processed in a left-associative way.

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-25 04:08:56 UTC (rev 850)
+++ branches/mgr-61-sparql/src/jar/resolver/java/org/mulgara/resolver/DefaultConstraintHandlers.java	2008-04-25 04:10:24 UTC (rev 851)
@@ -182,13 +182,15 @@
         }),
         new NVPair(ConstraintOptionalJoin.class, new ConstraintResolutionHandler() {
           public Tuples resolve(QueryEvaluationContext context, ModelExpression modelExpr, ConstraintExpression constraintExpr) throws Exception {
-            List args = context.resolveConstraintOperation(modelExpr, (ConstraintOperation)constraintExpr);
-            assert args.size() == 2;
+            List<Tuples> args = context.resolveConstraintOperation(modelExpr, (ConstraintOperation)constraintExpr);
+            LinkedList<Tuples> stackedArgs;
+            // we know this is a linked list, but test just in case it is ever changed.
+            if (args instanceof LinkedList) stackedArgs = (LinkedList<Tuples>)args;
+            else stackedArgs = new LinkedList<Tuples>(args);
             try {
-              return TuplesOperations.optionalJoin((Tuples)args.get(0), (Tuples)args.get(1));
+              return TuplesOperations.optionalJoin(stackedArgs);
             } finally {
-              ((Tuples)args.get(0)).close();
-              ((Tuples)args.get(1)).close();
+              for (Tuples t: stackedArgs) t.close();
             }
           }
         }),




More information about the Mulgara-svn mailing list