From: <mrp...@us...> - 2011-03-09 17:36:19
|
Revision: 4286 http://bigdata.svn.sourceforge.net/bigdata/?rev=4286&view=rev Author: mrpersonick Date: 2011-03-09 17:36:10 +0000 (Wed, 09 Mar 2011) Log Message: ----------- rearranging the type hierarchy for sparql IValueExpressions Modified Paths: -------------- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/AND.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/BooleanValueExpression.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/EQ.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/EQConstant.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/INConstraint.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/NE.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/NEConstant.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/OR.java branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/joinGraph/TestPartitionedJoinGroup_canJoinUsingConstraints.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/inf/OwlSameAsPropertiesExpandingIterator.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/AndBOp.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/CompareBOp.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/EBVBOp.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsBNodeBOp.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsBoundBOp.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsInlineBOp.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsLiteralBOp.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsURIBOp.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/MathBOp.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/NotBOp.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/OrBOp.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/SPARQLConstraint.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/SameTermBOp.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/StrBOp.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/rules/RejectAnythingSameAsItself.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/test/com/bigdata/bop/rdf/TestBOpUtility.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/test/com/bigdata/rdf/internal/constraints/TestInlineConstraints.java branches/QUADS_QUERY_BRANCH/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataEvaluationStrategyImpl3.java Added Paths: ----------- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IVValueExpression.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/InferenceBVE.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/XSDBooleanIVValueExpression.java Removed Paths: ------------- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/ValueExpressionBOp.java Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/AND.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/AND.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/AND.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -27,12 +27,13 @@ import java.util.Map; import com.bigdata.bop.BOp; +import com.bigdata.bop.BOpBase; import com.bigdata.bop.IBindingSet; /** * Imposes the constraint <code>x AND y</code>. */ -public class AND extends BooleanValueExpression { +public class AND extends BOpBase implements BooleanValueExpression { /** * Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/BooleanValueExpression.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/BooleanValueExpression.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/BooleanValueExpression.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -24,41 +24,16 @@ */ package com.bigdata.bop.constraint; -import java.util.Map; - -import com.bigdata.bop.BOp; -import com.bigdata.bop.BOpBase; import com.bigdata.bop.IBindingSet; import com.bigdata.bop.IValueExpression; /** - * Base class for boolean value expression BOps. Value expressions perform some + * Interface for boolean value expression BOps. Value expressions perform some * evaluation on one or more value expressions as input and produce one * boolean as output. */ -public abstract class BooleanValueExpression extends BOpBase - implements IValueExpression<Boolean> { +public interface BooleanValueExpression extends IValueExpression<Boolean> { - /** - * - */ - private static final long serialVersionUID = 1140290634566864478L; - - /** - * Required shallow copy constructor. - */ - public BooleanValueExpression(final BOp[] args, - final Map<String, Object> anns) { - super(args, anns); - } - - /** - * Required deep copy constructor. - */ - public BooleanValueExpression(final BooleanValueExpression op) { - super(op); - } - - public abstract Boolean get(final IBindingSet bs); + Boolean get(final IBindingSet bs); } Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/EQ.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/EQ.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/EQ.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -27,6 +27,7 @@ import java.util.Map; import com.bigdata.bop.BOp; +import com.bigdata.bop.BOpBase; import com.bigdata.bop.IBindingSet; import com.bigdata.bop.IConstant; import com.bigdata.bop.IVariable; @@ -34,7 +35,7 @@ /** * Imposes the constraint <code>x == y</code>. */ -public class EQ extends BooleanValueExpression { +public class EQ extends BOpBase implements BooleanValueExpression { /** * Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/EQConstant.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/EQConstant.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/EQConstant.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -27,6 +27,7 @@ import java.util.Map; import com.bigdata.bop.BOp; +import com.bigdata.bop.BOpBase; import com.bigdata.bop.IBindingSet; import com.bigdata.bop.IConstant; import com.bigdata.bop.IVariable; @@ -34,7 +35,7 @@ /** * Imposes the constraint <code>var == constant</code>. */ -public class EQConstant extends BooleanValueExpression { +public class EQConstant extends BOpBase implements BooleanValueExpression { /** * Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/INConstraint.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/INConstraint.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/INConstraint.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -47,7 +47,8 @@ * {@link InGraphHashSetFilter} and also with the use of an in-memory * join against the incoming binding sets to handle SPARQL data sets. */ -abstract public class INConstraint<T> extends BooleanValueExpression { +abstract public class INConstraint<T> extends BOpBase + implements BooleanValueExpression { /** * Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/NE.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/NE.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/NE.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -27,6 +27,7 @@ import java.util.Map; import com.bigdata.bop.BOp; +import com.bigdata.bop.BOpBase; import com.bigdata.bop.IBindingSet; import com.bigdata.bop.IConstant; import com.bigdata.bop.IVariable; @@ -34,7 +35,7 @@ /** * Imposes the constraint <code>x != y</code>. */ -public class NE extends BooleanValueExpression { +public class NE extends BOpBase implements BooleanValueExpression { /** * Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/NEConstant.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/NEConstant.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/NEConstant.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -27,6 +27,7 @@ import java.util.Map; import com.bigdata.bop.BOp; +import com.bigdata.bop.BOpBase; import com.bigdata.bop.IBindingSet; import com.bigdata.bop.IConstant; import com.bigdata.bop.IVariable; @@ -34,7 +35,7 @@ /** * Imposes the constraint <code>var != constant</code>. */ -public class NEConstant extends BooleanValueExpression { +public class NEConstant extends BOpBase implements BooleanValueExpression { /** * Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/OR.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/OR.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/constraint/OR.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -27,12 +27,13 @@ import java.util.Map; import com.bigdata.bop.BOp; +import com.bigdata.bop.BOpBase; import com.bigdata.bop.IBindingSet; /** * Imposes the constraint <code>x OR y</code>. */ -public class OR extends BooleanValueExpression { +public class OR extends BOpBase implements BooleanValueExpression { /** * Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/joinGraph/TestPartitionedJoinGroup_canJoinUsingConstraints.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/joinGraph/TestPartitionedJoinGroup_canJoinUsingConstraints.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/joinGraph/TestPartitionedJoinGroup_canJoinUsingConstraints.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -37,6 +37,7 @@ import junit.framework.TestCase2; import com.bigdata.bop.BOp; +import com.bigdata.bop.BOpBase; import com.bigdata.bop.Constant; import com.bigdata.bop.IBindingSet; import com.bigdata.bop.IConstant; @@ -241,7 +242,8 @@ * used to test the logic which decides when two predicates can join based * on variable(s) shared via a constraint. */ - static private final class MyCompareOp extends BooleanValueExpression { + static private final class MyCompareOp extends BOpBase + implements BooleanValueExpression { private static final long serialVersionUID = 1L; @@ -273,7 +275,8 @@ * used to test the logic which decides when two predicates can join based * on variable(s) shared via a constraint. */ - static private final class NEConstant extends BooleanValueExpression { + static private final class NEConstant extends BOpBase + implements BooleanValueExpression { private static final long serialVersionUID = 1L; Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/inf/OwlSameAsPropertiesExpandingIterator.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/inf/OwlSameAsPropertiesExpandingIterator.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/inf/OwlSameAsPropertiesExpandingIterator.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -5,6 +5,7 @@ import org.apache.log4j.Logger; import com.bigdata.bop.BOp; +import com.bigdata.bop.BOpBase; import com.bigdata.bop.Constant; import com.bigdata.bop.IBindingSet; import com.bigdata.bop.IConstant; @@ -496,7 +497,7 @@ } }; - private class RejectSameAsSelf extends BooleanValueExpression { + private class RejectSameAsSelf extends BOpBase implements BooleanValueExpression { /** * Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/AndBOp.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/AndBOp.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/AndBOp.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -36,15 +36,15 @@ /** * Imposes the constraint <code>x AND y</code>. */ -public class AndBOp extends ValueExpressionBOp - implements IValueExpression<IV> { +public class AndBOp extends XSDBooleanIVValueExpression { /** * */ private static final long serialVersionUID = -1217715173822304819L; - public AndBOp(final IValueExpression<IV> x, final IValueExpression<IV> y) { + public AndBOp(final IValueExpression<? extends IV> x, + final IValueExpression<? extends IV> y) { this(new BOp[] { x, y }, null/*annocations*/); @@ -79,13 +79,13 @@ XSDBooleanIV left, right; try { - left = (XSDBooleanIV) get(0).get(bs); + left = get(0).get(bs); } catch (SparqlTypeErrorException ex) { left = null; } try { - right = (XSDBooleanIV) get(1).get(bs); + right = get(1).get(bs); } catch (SparqlTypeErrorException ex) { right = null; } @@ -105,10 +105,5 @@ } - public XSDBooleanIV get(final IBindingSet bs) { - - return accept(bs) ? XSDBooleanIV.TRUE : XSDBooleanIV.FALSE; - - } } Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/CompareBOp.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/CompareBOp.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/CompareBOp.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -44,8 +44,7 @@ * * @see IVUtility#numericalCompare(IV, IV) */ -public class CompareBOp extends ValueExpressionBOp - implements IValueExpression<IV> { +public class CompareBOp extends XSDBooleanIVValueExpression { /** * @@ -64,8 +63,8 @@ } - public CompareBOp(final IValueExpression<IV> left, - final IValueExpression<IV> right, final CompareOp op) { + public CompareBOp(final IValueExpression<? extends IV> left, + final IValueExpression<? extends IV> right, final CompareOp op) { this(new BOp[] { left, right }, NV.asMap(new NV(Annotations.OP, op))); @@ -166,35 +165,4 @@ } - public IV get(final IBindingSet bs) { - - return accept(bs) ? XSDBooleanIV.TRUE : XSDBooleanIV.FALSE; - - } - - public static class NotNumericalException extends RuntimeException { - - /** - * - */ - private static final long serialVersionUID = -8853739187628588335L; - - public NotNumericalException() { - super(); - } - - public NotNumericalException(String s, Throwable t) { - super(s, t); - } - - public NotNumericalException(String s) { - super(s); - } - - public NotNumericalException(Throwable t) { - super(t); - } - - } - } Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/EBVBOp.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/EBVBOp.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/EBVBOp.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -37,14 +37,14 @@ * Calculates the "effective boolean value" of an IValueExpression. See the * SPARQL spec for details. */ -public class EBVBOp extends ValueExpressionBOp { +public class EBVBOp extends XSDBooleanIVValueExpression { /** * */ private static final long serialVersionUID = -5701967329003122236L; - public EBVBOp(final IValueExpression<IV> x) { + public EBVBOp(final IValueExpression<? extends IV> x) { this(new BOp[] { x }, null/*Annotations*/); @@ -114,16 +114,4 @@ } - /** - * We know we can strengthen the return type on this one since its whole - * purpose is to evaluate the effective boolean value of a wrapped - * expression. - */ -// @Override - public XSDBooleanIV get(final IBindingSet bs) { - - return accept(bs) ? XSDBooleanIV.TRUE : XSDBooleanIV.FALSE; - - } - } Copied: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IVValueExpression.java (from rev 4276, branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/ValueExpressionBOp.java) =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IVValueExpression.java (rev 0) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IVValueExpression.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -0,0 +1,71 @@ +/* + +Copyright (C) SYSTAP, LLC 2006-2011. All rights reserved. + +Contact: + SYSTAP, LLC + 4501 Tower Road + Greensboro, NC 27410 + lic...@bi... + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 of the License. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +*/ +package com.bigdata.rdf.internal.constraints; + +import java.util.Map; + +import com.bigdata.bop.BOp; +import com.bigdata.bop.BOpBase; +import com.bigdata.bop.IValueExpression; +import com.bigdata.rdf.error.SparqlTypeErrorException; +import com.bigdata.rdf.internal.IV; + +/** + * Base class for RDF value expression BOps. Value expressions perform some + * evaluation on one or more value expressions as input and produce one + * value expression as output (boolean, numeric value, etc.) + */ +public abstract class IVValueExpression<T extends IV> extends BOpBase + implements IValueExpression<T> { + + /** + * + */ + private static final long serialVersionUID = -7068219781217676085L; + + /** + * Required shallow copy constructor. + */ + public IVValueExpression(final BOp[] args, final Map<String, Object> anns) { + super(args, anns); + } + + /** + * Required deep copy constructor. + */ + public IVValueExpression(final IVValueExpression op) { + super(op); + } + + @Override + public IValueExpression<T> get(final int i) { + try { + return (IValueExpression<T>) super.get(i); + } catch (ClassCastException ex) { + throw new SparqlTypeErrorException(); + } + } + +} Added: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/InferenceBVE.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/InferenceBVE.java (rev 0) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/InferenceBVE.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -0,0 +1,63 @@ +package com.bigdata.rdf.internal.constraints; + +import java.util.Map; + +import com.bigdata.bop.BOp; +import com.bigdata.bop.BOpBase; +import com.bigdata.bop.IBindingSet; +import com.bigdata.bop.constraint.BooleanValueExpression; +import com.bigdata.rdf.error.SparqlTypeErrorException; +import com.bigdata.rdf.internal.XSDBooleanIV; + +public class InferenceBVE extends BOpBase implements BooleanValueExpression { + + /** + * + */ + private static final long serialVersionUID = -5713570348190136135L; + + public InferenceBVE(final XSDBooleanIVValueExpression x) { + + this(new BOp[] { x }, null/*annocations*/); + + } + + /** + * Required shallow copy constructor. + */ + public InferenceBVE(final BOp[] args, final Map<String, Object> anns) { + + super(args, anns); + + if (args.length != 1 || args[0] == null) + throw new IllegalArgumentException(); + + } + + /** + * Required deep copy constructor. + */ + public InferenceBVE(final InferenceBVE op) { + super(op); + } + + /** + * For inference rules, we want to trap unbound variable exceptions and + * allow the solution through. + */ + public Boolean get(final IBindingSet bs) { + + final XSDBooleanIVValueExpression bop = + (XSDBooleanIVValueExpression) get(0); + + try { + final XSDBooleanIV iv = bop.get(bs); + return iv.booleanValue(); + } catch (SparqlTypeErrorException ex) { + // allow unbound variables + return true; + } + + } + +} Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsBNodeBOp.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsBNodeBOp.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsBNodeBOp.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -28,7 +28,6 @@ import com.bigdata.bop.BOp; import com.bigdata.bop.IBindingSet; -import com.bigdata.bop.IValueExpression; import com.bigdata.bop.IVariable; import com.bigdata.rdf.error.SparqlTypeErrorException; import com.bigdata.rdf.internal.IV; @@ -37,8 +36,7 @@ /** * Imposes the constraint <code>isBNode(x)</code>. */ -public class IsBNodeBOp extends ValueExpressionBOp - implements IValueExpression<IV> { +public class IsBNodeBOp extends XSDBooleanIVValueExpression { /** * @@ -82,10 +80,4 @@ } - public IV get(final IBindingSet bs) { - - return accept(bs) ? XSDBooleanIV.TRUE : XSDBooleanIV.FALSE; - - } - } Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsBoundBOp.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsBoundBOp.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsBoundBOp.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -36,8 +36,7 @@ /** * Imposes the constraint <code>bound(x)</code> for the variable x. */ -public class IsBoundBOp extends ValueExpressionBOp - implements IValueExpression<IV> { +public class IsBoundBOp extends XSDBooleanIVValueExpression { /** * @@ -75,10 +74,4 @@ } - public IV get(final IBindingSet bs) { - - return accept(bs) ? XSDBooleanIV.TRUE : XSDBooleanIV.FALSE; - - } - } Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsInlineBOp.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsInlineBOp.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsInlineBOp.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -39,8 +39,7 @@ /** * Imposes the constraint <code>isInline(x)</code>. */ -public class IsInlineBOp extends ValueExpressionBOp - implements IValueExpression<IV> { +public class IsInlineBOp extends XSDBooleanIVValueExpression { /** * @@ -100,10 +99,4 @@ } - public IV get(final IBindingSet bs) { - - return accept(bs) ? XSDBooleanIV.TRUE : XSDBooleanIV.FALSE; - - } - } Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsLiteralBOp.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsLiteralBOp.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsLiteralBOp.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -37,8 +37,7 @@ /** * Imposes the constraint <code>isLiteral(x)</code>. */ -public class IsLiteralBOp extends ValueExpressionBOp - implements IValueExpression<IV> { +public class IsLiteralBOp extends XSDBooleanIVValueExpression { /** * @@ -82,10 +81,4 @@ } - public IV get(final IBindingSet bs) { - - return accept(bs) ? XSDBooleanIV.TRUE : XSDBooleanIV.FALSE; - - } - } Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsURIBOp.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsURIBOp.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/IsURIBOp.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -37,8 +37,7 @@ /** * Imposes the constraint <code>isURI(x)</code>. */ -public class IsURIBOp extends ValueExpressionBOp - implements IValueExpression<IV> { +public class IsURIBOp extends XSDBooleanIVValueExpression { /** * @@ -82,10 +81,4 @@ } - public IV get(final IBindingSet bs) { - - return accept(bs) ? XSDBooleanIV.TRUE : XSDBooleanIV.FALSE; - - } - } Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/MathBOp.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/MathBOp.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/MathBOp.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -39,8 +39,7 @@ * operation to be applied to the operands is specified by the * {@link Annotations#OP} annotation. */ -final public class MathBOp extends ValueExpressionBOp - implements IValueExpression<IV> { +final public class MathBOp extends IVValueExpression<IV> { /** * @@ -89,8 +88,8 @@ * The annotation specifying the operation to be performed on * those operands. */ - public MathBOp(final IValueExpression<IV> left, - final IValueExpression<IV> right, final MathOp op) { + public MathBOp(final IValueExpression<? extends IV> left, + final IValueExpression<? extends IV> right, final MathOp op) { this(new BOp[] { left, right }, NV.asMap(new NV(Annotations.OP, op))); Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/NotBOp.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/NotBOp.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/NotBOp.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -35,15 +35,14 @@ /** * Imposes the constraint <code>!x</code>. */ -public class NotBOp extends ValueExpressionBOp - implements IValueExpression<IV> { +public class NotBOp extends XSDBooleanIVValueExpression { /** * */ private static final long serialVersionUID = -5701967329003122236L; - public NotBOp(final IValueExpression<IV> x) { + public NotBOp(final IValueExpression<? extends IV> x) { this(new BOp[] { x }, null/*Annotations*/); @@ -76,10 +75,4 @@ } - public IV get(final IBindingSet bs) { - - return accept(bs) ? XSDBooleanIV.TRUE : XSDBooleanIV.FALSE; - - } - } Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/OrBOp.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/OrBOp.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/OrBOp.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -36,15 +36,15 @@ /** * Imposes the constraint <code>x OR y</code>. */ -public class OrBOp extends ValueExpressionBOp - implements IValueExpression<IV> { +public class OrBOp extends XSDBooleanIVValueExpression { /** * */ private static final long serialVersionUID = 610253427197564102L; - public OrBOp(final IValueExpression<IV> x, final IValueExpression<IV> y) { + public OrBOp(final IValueExpression<? extends IV> x, + final IValueExpression<? extends IV> y) { this(new BOp[] { x, y }, null/*annocations*/); @@ -79,13 +79,13 @@ XSDBooleanIV left, right; try { - left = (XSDBooleanIV) get(0).get(bs); + left = get(0).get(bs); } catch (SparqlTypeErrorException ex) { left = null; } try { - right = (XSDBooleanIV) get(1).get(bs); + right = get(1).get(bs); } catch (SparqlTypeErrorException ex) { right = null; } @@ -105,10 +105,4 @@ } - public XSDBooleanIV get(final IBindingSet bs) { - - return accept(bs) ? XSDBooleanIV.TRUE : XSDBooleanIV.FALSE; - - } - } Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/SPARQLConstraint.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/SPARQLConstraint.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/SPARQLConstraint.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -34,6 +34,7 @@ import com.bigdata.bop.IValueExpression; import com.bigdata.rdf.error.SparqlTypeErrorException; import com.bigdata.rdf.internal.IV; +import com.bigdata.rdf.internal.XSDBooleanIV; import com.bigdata.util.InnerCause; /** @@ -52,7 +53,7 @@ /** * Convenience method to generate a constraint from a value expression. */ - public static IConstraint wrap(final IValueExpression<IV> ve) { + public static IConstraint wrap(final IValueExpression<? extends IV> ve) { if (ve instanceof EBVBOp) return new SPARQLConstraint((EBVBOp) ve); else @@ -86,7 +87,7 @@ return (EBVBOp) super.get(i); } - public IValueExpression<IV> getValueExpression() { + public IValueExpression<XSDBooleanIV> getValueExpression() { return get(0).get(0); } Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/SameTermBOp.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/SameTermBOp.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/SameTermBOp.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -36,16 +36,15 @@ /** * Compare two terms for exact equality. */ -public class SameTermBOp extends ValueExpressionBOp - implements IValueExpression<IV> { +public class SameTermBOp extends XSDBooleanIVValueExpression { /** * */ private static final long serialVersionUID = 1L; - public SameTermBOp(final IValueExpression<IV> left, - final IValueExpression<IV> right) { + public SameTermBOp(final IValueExpression<? extends IV> left, + final IValueExpression<? extends IV> right) { this(new BOp[] { left, right }, null); @@ -83,10 +82,4 @@ } - public IV get(final IBindingSet bs) { - - return accept(bs) ? XSDBooleanIV.TRUE : XSDBooleanIV.FALSE; - - } - } Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/StrBOp.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/StrBOp.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/StrBOp.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -43,8 +43,7 @@ /** * Imposes the constraint <code>isURI(x)</code>. */ -public class StrBOp extends ValueExpressionBOp - implements IValueExpression<IV> { +public class StrBOp extends IVValueExpression<IV> { /** * Deleted: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/ValueExpressionBOp.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/ValueExpressionBOp.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/ValueExpressionBOp.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -1,66 +0,0 @@ -/* - -Copyright (C) SYSTAP, LLC 2006-2011. All rights reserved. - -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -*/ -package com.bigdata.rdf.internal.constraints; - -import java.util.Map; - -import com.bigdata.bop.BOp; -import com.bigdata.bop.BOpBase; -import com.bigdata.bop.IValueExpression; -import com.bigdata.rdf.internal.IV; - -/** - * Base class for RDF value expression BOps. Value expressions perform some - * evaluation on one or more value expressions as input and produce one - * value expression as output (boolean, numeric value, etc.) - */ -public abstract class ValueExpressionBOp extends BOpBase - implements IValueExpression<IV> { - - /** - * - */ - private static final long serialVersionUID = -7068219781217676085L; - - /** - * Required shallow copy constructor. - */ - public ValueExpressionBOp(final BOp[] args, final Map<String, Object> anns) { - super(args, anns); - } - - /** - * Required deep copy constructor. - */ - public ValueExpressionBOp(final ValueExpressionBOp op) { - super(op); - } - - @Override - public IValueExpression<IV> get(final int i) { - return (IValueExpression<IV>) super.get(i); - } - -} Added: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/XSDBooleanIVValueExpression.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/XSDBooleanIVValueExpression.java (rev 0) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/XSDBooleanIVValueExpression.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -0,0 +1,68 @@ +/* + +Copyright (C) SYSTAP, LLC 2006-2011. All rights reserved. + +Contact: + SYSTAP, LLC + 4501 Tower Road + Greensboro, NC 27410 + lic...@bi... + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 of the License. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +*/ +package com.bigdata.rdf.internal.constraints; + +import java.util.Map; + +import com.bigdata.bop.BOp; +import com.bigdata.bop.IBindingSet; +import com.bigdata.rdf.internal.XSDBooleanIV; + +/** + * Base class for RDF value expression BOps. Value expressions perform some + * evaluation on one or more value expressions as input and produce one + * value expression as output (boolean, numeric value, etc.) + */ +public abstract class XSDBooleanIVValueExpression + extends IVValueExpression<XSDBooleanIV> { + + /** + * + */ + private static final long serialVersionUID = -7068219781217676085L; + + /** + * Required shallow copy constructor. + */ + public XSDBooleanIVValueExpression(final BOp[] args, final Map<String, Object> anns) { + super(args, anns); + } + + /** + * Required deep copy constructor. + */ + public XSDBooleanIVValueExpression(final XSDBooleanIVValueExpression op) { + super(op); + } + + public boolean accept(final IBindingSet bs) { + return false; + } + + public XSDBooleanIV get(final IBindingSet bs) { + return accept(bs) ? XSDBooleanIV.TRUE : XSDBooleanIV.FALSE; + } + +} Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/rules/RejectAnythingSameAsItself.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/rules/RejectAnythingSameAsItself.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/rules/RejectAnythingSameAsItself.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -27,6 +27,7 @@ import java.util.Map; import com.bigdata.bop.BOp; +import com.bigdata.bop.BOpBase; import com.bigdata.bop.IBindingSet; import com.bigdata.bop.IConstant; import com.bigdata.bop.IVariable; @@ -35,7 +36,8 @@ /** * Rejects (x y z) iff x==z and y==owl:sameAs, where x, y, and z are variables. */ -public class RejectAnythingSameAsItself extends BooleanValueExpression { +public class RejectAnythingSameAsItself extends BOpBase + implements BooleanValueExpression { /** * Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/test/com/bigdata/bop/rdf/TestBOpUtility.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/test/com/bigdata/bop/rdf/TestBOpUtility.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/test/com/bigdata/bop/rdf/TestBOpUtility.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -54,7 +54,7 @@ import com.bigdata.bop.Var; import com.bigdata.rdf.internal.IV; import com.bigdata.rdf.internal.constraints.OrBOp; -import com.bigdata.rdf.internal.constraints.ValueExpressionBOp; +import com.bigdata.rdf.internal.constraints.IVValueExpression; import com.bigdata.rdf.store.BD; /** @@ -146,7 +146,7 @@ } - private static class DummyVE extends ValueExpressionBOp { + private static class DummyVE extends IVValueExpression { /** * @@ -157,7 +157,7 @@ super(args, annotations); } - public DummyVE(ValueExpressionBOp op) { + public DummyVE(IVValueExpression op) { super(op); } Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/test/com/bigdata/rdf/internal/constraints/TestInlineConstraints.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/test/com/bigdata/rdf/internal/constraints/TestInlineConstraints.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/test/com/bigdata/rdf/internal/constraints/TestInlineConstraints.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -792,19 +792,19 @@ public void testAnd() { - final IValueExpression<IV> T = new ValueExpressionBOp(new BOp[] { }, null/*anns*/) { + final IValueExpression<IV> T = new IVValueExpression(new BOp[] { }, null/*anns*/) { public IV get(IBindingSet bindingSet) { return XSDBooleanIV.TRUE; } }; - final IValueExpression<IV> F = new ValueExpressionBOp(new BOp[] { }, null/*anns*/) { + final IValueExpression<IV> F = new IVValueExpression(new BOp[] { }, null/*anns*/) { public IV get(IBindingSet bindingSet) { return XSDBooleanIV.FALSE; } }; - final IValueExpression<IV> E = new ValueExpressionBOp(new BOp[] { }, null/*anns*/) { + final IValueExpression<IV> E = new IVValueExpression(new BOp[] { }, null/*anns*/) { public IV get(IBindingSet bindingSet) { throw new SparqlTypeErrorException(); } @@ -871,19 +871,19 @@ public void testOr() { - final IValueExpression<IV> T = new ValueExpressionBOp(new BOp[] { }, null/*anns*/) { + final IValueExpression<IV> T = new IVValueExpression(new BOp[] { }, null/*anns*/) { public IV get(IBindingSet bindingSet) { return XSDBooleanIV.TRUE; } }; - final IValueExpression<IV> F = new ValueExpressionBOp(new BOp[] { }, null/*anns*/) { + final IValueExpression<IV> F = new IVValueExpression(new BOp[] { }, null/*anns*/) { public IV get(IBindingSet bindingSet) { return XSDBooleanIV.FALSE; } }; - final IValueExpression<IV> E = new ValueExpressionBOp(new BOp[] { }, null/*anns*/) { + final IValueExpression<IV> E = new IVValueExpression(new BOp[] { }, null/*anns*/) { public IV get(IBindingSet bindingSet) { throw new SparqlTypeErrorException(); } Modified: branches/QUADS_QUERY_BRANCH/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataEvaluationStrategyImpl3.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataEvaluationStrategyImpl3.java 2011-03-08 20:18:07 UTC (rev 4285) +++ branches/QUADS_QUERY_BRANCH/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataEvaluationStrategyImpl3.java 2011-03-09 17:36:10 UTC (rev 4286) @@ -28,6 +28,7 @@ import org.openrdf.query.algebra.And; import org.openrdf.query.algebra.Bound; import org.openrdf.query.algebra.Compare; +import org.openrdf.query.algebra.Compare.CompareOp; import org.openrdf.query.algebra.Filter; import org.openrdf.query.algebra.Group; import org.openrdf.query.algebra.IsBNode; @@ -49,14 +50,13 @@ import org.openrdf.query.algebra.Regex; import org.openrdf.query.algebra.SameTerm; import org.openrdf.query.algebra.StatementPattern; +import org.openrdf.query.algebra.StatementPattern.Scope; import org.openrdf.query.algebra.TupleExpr; import org.openrdf.query.algebra.UnaryTupleOperator; import org.openrdf.query.algebra.Union; import org.openrdf.query.algebra.ValueConstant; import org.openrdf.query.algebra.ValueExpr; import org.openrdf.query.algebra.Var; -import org.openrdf.query.algebra.Compare.CompareOp; -import org.openrdf.query.algebra.StatementPattern.Scope; import org.openrdf.query.algebra.evaluation.impl.EvaluationStrategyImpl; import org.openrdf.query.algebra.evaluation.iterator.FilterIterator; import org.openrdf.query.algebra.helpers.QueryModelVisitorBase; @@ -68,12 +68,12 @@ import com.bigdata.bop.IConstant; import com.bigdata.bop.IConstraint; import com.bigdata.bop.IPredicate; +import com.bigdata.bop.IPredicate.Annotations; import com.bigdata.bop.IValueExpression; import com.bigdata.bop.IVariable; import com.bigdata.bop.IVariableOrConstant; import com.bigdata.bop.NV; import com.bigdata.bop.PipelineOp; -import com.bigdata.bop.IPredicate.Annotations; import com.bigdata.bop.ap.Predicate; import com.bigdata.bop.constraint.INBinarySearch; import com.bigdata.bop.engine.IRunningQuery; @@ -92,21 +92,22 @@ import com.bigdata.rdf.internal.constraints.IsLiteralBOp; import com.bigdata.rdf.internal.constraints.IsURIBOp; import com.bigdata.rdf.internal.constraints.MathBOp; +import com.bigdata.rdf.internal.constraints.MathBOp.MathOp; import com.bigdata.rdf.internal.constraints.NotBOp; import com.bigdata.rdf.internal.constraints.OrBOp; import com.bigdata.rdf.internal.constraints.RangeBOp; import com.bigdata.rdf.internal.constraints.SPARQLConstraint; import com.bigdata.rdf.internal.constraints.SameTermBOp; -import com.bigdata.rdf.internal.constraints.MathBOp.MathOp; +import com.bigdata.rdf.internal.constraints.XSDBooleanIVValueExpression; import com.bigdata.rdf.lexicon.LexiconRelation; import com.bigdata.rdf.model.BigdataValue; import com.bigdata.rdf.sail.BigdataSail.Options; import com.bigdata.rdf.sail.sop.SOp; import com.bigdata.rdf.sail.sop.SOp2BOpUtility; import com.bigdata.rdf.sail.sop.SOpTree; +import com.bigdata.rdf.sail.sop.SOpTree.SOpGroup; import com.bigdata.rdf.sail.sop.SOpTreeBuilder; import com.bigdata.rdf.sail.sop.UnsupportedOperatorException; -import com.bigdata.rdf.sail.sop.SOpTree.SOpGroup; import com.bigdata.rdf.spo.DefaultGraphSolutionExpander; import com.bigdata.rdf.spo.ExplicitSPOFilter; import com.bigdata.rdf.spo.ISPO; @@ -1675,7 +1676,7 @@ */ private IConstraint toConstraint(final ValueExpr ve) { - final IValueExpression<IV> veBOp = toVE(ve); + final IValueExpression<? extends IV> veBOp = toVE(ve); return SPARQLConstraint.wrap(veBOp); } @@ -1686,7 +1687,7 @@ * value constants, and math expressions. Is there anything else we need * to handle? */ - private IValueExpression<IV> toVE(final ValueExpr ve) + private IValueExpression<? extends IV> toVE(final ValueExpr ve) throws UnsupportedOperatorException { if (ve instanceof Var) { @@ -1720,8 +1721,8 @@ throw new UnsupportedOperatorException(ve); } - private IValueExpression<IV> toVE(Or or) { - IValueExpression<IV> left = null, right = null; + private IValueExpression<? extends IV> toVE(Or or) { + IValueExpression<? extends IV> left = null, right = null; UnrecognizedValueException uve = null; try { left = toVE(or.getLeftArg()); @@ -1754,65 +1755,65 @@ } } - private IValueExpression<IV> toVE(And and) { - IValueExpression<IV> left = toVE(and.getLeftArg()); + private IValueExpression<? extends IV> toVE(And and) { + IValueExpression<? extends IV> left = toVE(and.getLeftArg()); if (left instanceof IVariableOrConstant) left = new EBVBOp(left); - IValueExpression<IV> right = toVE(and.getRightArg()); + IValueExpression<? extends IV> right = toVE(and.getRightArg()); if (right instanceof IVariableOrConstant) right = new EBVBOp(right); return new AndBOp(left, right); } - private IValueExpression<IV> toVE(Not not) { - IValueExpression<IV> ve = toVE(not.getArg()); + private IValueExpression<? extends IV> toVE(Not not) { + IValueExpression<? extends IV> ve = toVE(not.getArg()); if (ve instanceof IVariableOrConstant) ve = new EBVBOp(ve); return new NotBOp(ve); } - private IValueExpression<IV> toVE(SameTerm sameTerm) { - final IValueExpression<IV> iv1 = + private IValueExpression<? extends IV> toVE(SameTerm sameTerm) { + final IValueExpression<? extends IV> iv1 = toVE(sameTerm.getLeftArg()); - final IValueExpression<IV> iv2 = + final IValueExpression<? extends IV> iv2 = toVE(sameTerm.getRightArg()); return new SameTermBOp(iv1, iv2); } - private IValueExpression<IV> toVE(final Compare compare) { + private IValueExpression<? extends IV> toVE(final Compare compare) { if (!database.isInlineLiterals()) { throw new UnsupportedOperatorException(compare); } - final IValueExpression<IV> iv1 = + final IValueExpression<? extends IV> iv1 = toVE(compare.getLeftArg()); - final IValueExpression<IV> iv2 = + final IValueExpression<? extends IV> iv2 = toVE(compare.getRightArg()); return new CompareBOp(iv1, iv2, compare.getOperator()); } - private IValueExpression<IV> toVE(final Bound bound) { + private IValueExpression<? extends IV> toVE(final Bound bound) { final IVariable<IV> var = com.bigdata.bop.Var.var(bound.getArg().getName()); return new IsBoundBOp(var); } - private IValueExpression<IV> toVE(final IsLiteral isLiteral) { + private IValueExpression<? extends IV> toVE(final IsLiteral isLiteral) { final IVariable<IV> var = (IVariable<IV>) toVE(isLiteral.getArg()); return new IsLiteralBOp(var); } - private IValueExpression<IV> toVE(final IsBNode isBNode) { + private IValueExpression<? extends IV> toVE(final IsBNode isBNode) { final IVariable<IV> var = (IVariable<IV>) toVE(isBNode.getArg()); return new IsBNodeBOp(var); } - private IValueExpression<IV> toVE(final IsResource isResource) { + private IValueExpression<? extends IV> toVE(final IsResource isResource) { final IVariable<IV> var = (IVariable<IV>) toVE(isResource.getArg()); // isResource == isURI || isBNode == !isLiteral return new NotBOp(new IsLiteralBOp(var)); } - private IValueExpression<IV> toVE(final IsURI isURI) { + private IValueExpression<? extends IV> toVE(final IsURI isURI) { final IVariable<IV> var = (IVariable<IV>) toVE(isURI.getArg()); return new IsURIBOp(var); } @@ -1874,8 +1875,8 @@ final ValueExpr left = mathExpr.getLeftArg(); final ValueExpr right = mathExpr.getRightArg(); final MathOp op = MathOp.valueOf(mathExpr.getOperator()); - final IValueExpression<IV> iv1 = toVE(left); - final IValueExpression<IV> iv2 = toVE(right); + final IValueExpression<? extends IV> iv1 = toVE(left); + final IValueExpression<? extends IV> iv2 = toVE(right); return new MathBOp(iv1, iv2, op); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |