[Mulgara-svn] r1900 - trunk/src/jar/querylang/java/org/mulgara/sparql

pag at mulgara.org pag at mulgara.org
Thu Jan 28 20:56:21 UTC 2010


Author: pag
Date: 2010-01-28 12:56:20 -0800 (Thu, 28 Jan 2010)
New Revision: 1900

Modified:
   trunk/src/jar/querylang/java/org/mulgara/sparql/PatternMapper.java
Log:
Updated to drop empty patterns from conunctions and unions. Filters are expected to have already been moved off these empty patterns before mapping

Modified: trunk/src/jar/querylang/java/org/mulgara/sparql/PatternMapper.java
===================================================================
--- trunk/src/jar/querylang/java/org/mulgara/sparql/PatternMapper.java	2010-01-28 20:54:52 UTC (rev 1899)
+++ trunk/src/jar/querylang/java/org/mulgara/sparql/PatternMapper.java	2010-01-28 20:56:20 UTC (rev 1900)
@@ -311,7 +311,11 @@
     ConstraintExpression typedMap(GraphPatternConjunction pattern, PatternMapper mapper) throws MulgaraParserException {
       List<GroupGraphPattern> list = pattern.getElements();
       List<ConstraintExpression> newList = new ArrayList<ConstraintExpression>(list.size());
-      for (GroupGraphPattern p: list) newList.add(mapper.mapPattern(p));
+      for (GroupGraphPattern p: list) {
+        if (p instanceof EmptyGraphPattern) {
+          if (p.getFilter() != null) throw new MulgaraParserException("Unexpected filter on empty pattern");
+        } else newList.add(mapper.mapPattern(p));
+      }
       if (newList.size() == 1) return newList.get(0);
       return new ConstraintConjunction(newList);
     }
@@ -323,7 +327,11 @@
     ConstraintExpression typedMap(GraphPatternDisjunction pattern, PatternMapper mapper) throws MulgaraParserException {
       List<GroupGraphPattern> list = pattern.getElements();
       List<ConstraintExpression> newList = new ArrayList<ConstraintExpression>(list.size());
-      for (GroupGraphPattern p: list) newList.add(mapper.mapPattern(p));
+      for (GroupGraphPattern p: list) {
+        if (p instanceof EmptyGraphPattern) {
+          // if (p.getFilter() != null) throw new MulgaraParserException("Unexpected filter on empty pattern");
+        } else newList.add(mapper.mapPattern(p));
+      }
       if (newList.size() == 1) return newList.get(0);
       return new ConstraintDisjunction(newList);
     }




More information about the Mulgara-svn mailing list