[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