You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2011/09/25 21:11:53 UTC
svn commit: r1175530 - in /incubator/jena/Jena2/ARQ/trunk:
src-test/com/hp/hpl/jena/sparql/expr/ src-test/com/hp/hpl/jena/sparql/junit/
src-test/com/hp/hpl/jena/sparql/resultset/ src/arq/
src/com/hp/hpl/jena/sparql/core/ src/com/hp/hpl/jena/sparql/engi...
Author: andy
Date: Sun Sep 25 19:11:52 2011
New Revision: 1175530
URL: http://svn.apache.org/viewvc?rev=1175530&view=rev
Log:
JENA-121
Interface for BindingMap (mutating operations)
Added:
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingHashMap.java
- copied, changed from r1175418, incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingMap.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingMutable.java (with props)
Modified:
incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/expr/TestExpressions.java
incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/junit/TestExpr.java
incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/resultset/TestResultSet.java
incubator/jena/Jena2/ARQ/trunk/src/arq/qexpr.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/ResultBinding.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/Binding.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/Binding0.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/Binding1.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingBase.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingFactory.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingMap.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingProjectBase.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingUtils.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/iterator/QueryIterCommonParent.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/graph/Reifier2.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/lang/ParserQueryBase.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/pfunction/library/splitIRI.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/JSONInput.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/SortedResultSet.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/XMLInputSAX.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/XMLInputStAX.java
Modified: incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/expr/TestExpressions.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/expr/TestExpressions.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/expr/TestExpressions.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/expr/TestExpressions.java Sun Sep 25 19:11:52 2011
@@ -380,7 +380,7 @@ public class TestExpressions
static String xsd = XSDDatatype.XSD+"#" ;
static Binding env ;
static {
- BindingMap b = new BindingMap() ;
+ BindingMap b = BindingFactory.create() ;
b.add(Var.alloc("a"), Node.createLiteral("A")) ;
b.add(Var.alloc("b"), Node.createAnon()) ;
b.add(Var.alloc("x"), Node.createURI("urn:x")) ;
Modified: incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/junit/TestExpr.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/junit/TestExpr.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/junit/TestExpr.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/junit/TestExpr.java Sun Sep 25 19:11:52 2011
@@ -15,7 +15,7 @@ import com.hp.hpl.jena.query.Query ;
import com.hp.hpl.jena.query.QueryFactory ;
import com.hp.hpl.jena.query.QueryParseException ;
import com.hp.hpl.jena.sparql.engine.binding.Binding ;
-import com.hp.hpl.jena.sparql.engine.binding.BindingMap ;
+import com.hp.hpl.jena.sparql.engine.binding.BindingFactory ;
import com.hp.hpl.jena.sparql.expr.Expr ;
import com.hp.hpl.jena.sparql.expr.NodeValue ;
import com.hp.hpl.jena.sparql.function.FunctionEnv ;
@@ -69,7 +69,7 @@ public abstract class TestExpr extends T
queryCxt = QueryFactory.make() ;
query = queryCxt ;
if ( env == null )
- env = new BindingMap() ;
+ env = BindingFactory.create() ;
binding = env ;
this.failureMode = failureOutcome ;
}
Modified: incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/resultset/TestResultSet.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/resultset/TestResultSet.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/resultset/TestResultSet.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/resultset/TestResultSet.java Sun Sep 25 19:11:52 2011
@@ -26,6 +26,7 @@ import com.hp.hpl.jena.sparql.core.Var ;
import com.hp.hpl.jena.sparql.engine.QueryIterator ;
import com.hp.hpl.jena.sparql.engine.ResultSetStream ;
import com.hp.hpl.jena.sparql.engine.binding.Binding ;
+import com.hp.hpl.jena.sparql.engine.binding.BindingFactory ;
import com.hp.hpl.jena.sparql.engine.binding.BindingMap ;
import com.hp.hpl.jena.sparql.engine.iterator.QueryIterPlainWrapper ;
import com.hp.hpl.jena.sparql.engine.iterator.QueryIterSingleton ;
@@ -320,7 +321,7 @@ public class TestResultSet extends BaseT
private ResultSet make(String var, Node val)
{
- BindingMap b = new BindingMap() ;
+ BindingMap b = BindingFactory.create() ;
b.add(Var.alloc(var), val) ;
List<String> vars = new ArrayList<String>() ;
vars.add(var) ;
@@ -331,9 +332,9 @@ public class TestResultSet extends BaseT
private ResultSet make2(String var, Node val)
{
- BindingMap b1 = new BindingMap() ;
+ BindingMap b1 = BindingFactory.create() ;
b1.add(Var.alloc(var), val) ;
- BindingMap b2 = new BindingMap() ;
+ BindingMap b2 = BindingFactory.create() ;
b2.add(Var.alloc(var), val) ;
List<String> vars = new ArrayList<String>() ;
@@ -365,7 +366,7 @@ public class TestResultSet extends BaseT
private ResultSet make(String var1, Node val1, String var2, Node val2 )
{
- BindingMap b = new BindingMap() ;
+ BindingMap b = BindingFactory.create() ;
b.add(Var.alloc(var1), val1) ;
b.add(Var.alloc(var2), val2) ;
Modified: incubator/jena/Jena2/ARQ/trunk/src/arq/qexpr.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/arq/qexpr.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/arq/qexpr.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/arq/qexpr.java Sun Sep 25 19:11:52 2011
@@ -9,6 +9,7 @@ package arq;
import java.util.Iterator ;
import org.openjena.atlas.io.IndentedWriter ;
+import org.openjena.atlas.logging.Log ;
import arq.cmd.CmdException ;
import arq.cmd.CmdUtils ;
import arq.cmd.TerminationException ;
@@ -23,13 +24,12 @@ import com.hp.hpl.jena.shared.PrefixMapp
import com.hp.hpl.jena.sparql.ARQConstants ;
import com.hp.hpl.jena.sparql.core.Prologue ;
import com.hp.hpl.jena.sparql.engine.ExecutionContext ;
-import com.hp.hpl.jena.sparql.engine.binding.BindingMap ;
+import com.hp.hpl.jena.sparql.engine.binding.BindingFactory ;
import com.hp.hpl.jena.sparql.expr.Expr ;
import com.hp.hpl.jena.sparql.expr.ExprEvalException ;
import com.hp.hpl.jena.sparql.expr.NodeValue ;
import com.hp.hpl.jena.sparql.function.FunctionEnv ;
import com.hp.hpl.jena.sparql.sse.WriterSSE ;
-import org.openjena.atlas.logging.Log ;
import com.hp.hpl.jena.sparql.util.ExprUtils ;
import com.hp.hpl.jena.sparql.util.FmtUtils ;
import com.hp.hpl.jena.sparql.util.NodeFactory ;
@@ -171,7 +171,7 @@ public class qexpr
try {
if ( actionCopySubstitute )
{
- Expr e = expr.copySubstitute(new BindingMap(), true) ;
+ Expr e = expr.copySubstitute(BindingFactory.create(), true) ;
System.out.println(e) ;
}
else
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/ResultBinding.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/ResultBinding.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/ResultBinding.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/ResultBinding.java Sun Sep 25 19:11:52 2011
@@ -35,7 +35,7 @@ public class ResultBinding extends Query
// private ResultBinding( Model _model )
// {
// model = _model ;
-// binding = new BindingMap() ;
+// binding = BindingFactory.create() ;
// }
@Override
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/Binding.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/Binding.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/Binding.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/Binding.java Sun Sep 25 19:11:52 2011
@@ -14,9 +14,6 @@ import com.hp.hpl.jena.sparql.core.Var ;
public interface Binding
{
-// /** Add a (var, value) pair- the value must not be null */
-// public void add(Var var, Node node) ;
-
/** Iterate over all variables of this binding. */
public Iterator<Var> vars() ;
@@ -32,7 +29,6 @@ public interface Binding
/** Is this an empty binding? No variables. */
public boolean isEmpty() ;
-// public void addAll(Binding key) ;
}
/*
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/Binding0.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/Binding0.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/Binding0.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/Binding0.java Sun Sep 25 19:11:52 2011
@@ -20,12 +20,6 @@ public class Binding0 extends BindingBas
/* package */ Binding0() { super(null) ; }
/* package */ Binding0(Binding parent) { super(parent) ; }
- @Override
- protected void add1(Var var, Node node)
- {
- throw new UnsupportedOperationException("Binding0.add1") ;
- }
-
/** Iterate over all the names of variables.
*/
@Override
@@ -42,9 +36,6 @@ public class Binding0 extends BindingBas
@Override
public Node get1(Var var) { return null ; }
-
- @Override
- protected void checkAdd1(Var var, Node node) { }
}
/*
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/Binding1.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/Binding1.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/Binding1.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/Binding1.java Sun Sep 25 19:11:52 2011
@@ -24,18 +24,11 @@ public class Binding1 extends BindingBas
/*package*/ Binding1(Binding parent, Var _var, Node _node)
{
super(parent) ;
- checkAdd1(_var, _node) ;
var = _var ;
value = _node ;
}
@Override
- protected void add1(Var v, Node node)
- {
- throw new UnsupportedOperationException("Binding1.add1") ;
- }
-
- @Override
protected int size1() { return 1 ; }
@Override
@@ -62,9 +55,6 @@ public class Binding1 extends BindingBas
return value ;
return null ;
}
-
- @Override
- protected void checkAdd1(Var v, Node val) { }
}
/*
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingBase.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingBase.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingBase.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingBase.java Sun Sep 25 19:11:52 2011
@@ -11,14 +11,19 @@ import java.util.Iterator ;
import org.openjena.atlas.iterator.IteratorConcat ;
import com.hp.hpl.jena.graph.Node ;
-import com.hp.hpl.jena.sparql.ARQInternalErrorException ;
import com.hp.hpl.jena.sparql.core.Var ;
import org.openjena.atlas.lib.Lib ;
-import org.openjena.atlas.logging.Log ;
import com.hp.hpl.jena.sparql.util.FmtUtils ;
-/** Machinary encapsulating a mapping from a name to a value. */
+
+/** Machinary encapsulating a mapping from a name to a value.
+ * The "parent" is a shared, immutable, common set of bindings.
+ * An association of var/node must not override a setting in the parent.
+ *
+ * @see BindingFactory
+ * @see BindingMap for mutable bindings.
+ */
abstract public class BindingBase implements Binding
@@ -51,31 +56,6 @@ abstract public class BindingBase implem
public Binding getParent() { return parent ; }
- /** Add a (var,value) - the node value is never null */
- final public void add(Var var, Node node)
- {
- if ( node == null )
- {
- Log.warn(this, "Binding.add: null value - ignored") ;
- return ;
- }
- checkAdd(var, node) ;
- add1(var, node) ;
- }
-
- protected abstract void add1(Var name, Node node) ;
-
- public void addAll(Binding other)
- {
- Iterator<Var> iter = other.vars() ;
- for ( ; iter.hasNext(); )
- {
- Var v = iter.next();
- Node n = other.get(v) ;
- add(v, n) ;
- }
- }
-
/** Iterate over all the names of variables. */
final public Iterator<Var> vars()
{
@@ -184,24 +164,6 @@ abstract public class BindingBase implem
return sbuff.toString() ;
}
- private void checkAdd(Var var, Node node)
- {
- if ( ! CHECKING )
- return ;
- if ( var == null )
- throw new ARQInternalErrorException("check("+var+", "+node+"): null var" ) ;
- if ( node == null )
- throw new ARQInternalErrorException("check("+var+", "+node+"): null node value" ) ;
- if ( UNIQUE_NAMES_CHECK && contains(var) )
- throw new ARQInternalErrorException("Attempt to reassign '"+var+
- "' from '"+FmtUtils.stringForNode(get(var))+
- "' to '"+FmtUtils.stringForNode(node)+"'") ;
- // Let the implementation do a check as well.
- checkAdd1(var, node) ;
- }
-
- protected abstract void checkAdd1(Var var, Node node) ;
-
@Override
public int hashCode() { return hashCode(this) ; }
@Override
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingFactory.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingFactory.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingFactory.java Sun Sep 25 19:11:52 2011
@@ -30,7 +30,7 @@ public class BindingFactory
}
public static BindingMap create() { return create(noParent) ; }
- public static BindingMap create(Binding parent) { return new BindingMap(parent) ; }
+ public static BindingMap create(Binding parent) { return new BindingHashMap(parent) ; }
}
/*
Copied: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingHashMap.java (from r1175418, incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingMap.java)
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingHashMap.java?p2=incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingHashMap.java&p1=incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingMap.java&r1=1175418&r2=1175530&rev=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingMap.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingHashMap.java Sun Sep 25 19:11:52 2011
@@ -9,29 +9,31 @@ import java.util.HashMap ;
import java.util.Iterator ;
import java.util.Map ;
+import org.openjena.atlas.logging.Log ;
+
import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.sparql.ARQInternalErrorException ;
import com.hp.hpl.jena.sparql.core.Var ;
+import com.hp.hpl.jena.sparql.util.FmtUtils ;
-
-/** A mapping from a name to a value such that we can create a tree of levels
+/** A muatable mapping from a name to a value such that we can create a tree of levels
* with higher (earlier levels) being shared.
* Looking up a name is done by looking in the current level,
* then trying the parent is not found. */
-
-public class BindingMap extends BindingBase
+public class BindingHashMap extends BindingBase implements BindingMap
{
// Bindings are often small. Is this overkill?
Map<Var, Node> map = new HashMap<Var, Node>() ;
/** Using BindingFactory.create is better */
- public BindingMap(Binding parent) { super(parent) ; }
+ public BindingHashMap(Binding parent) { super(parent) ; }
/** Using BindingFactory.create is better */
- public BindingMap() { super(BindingRoot.create()) ; } // null?
+ public BindingHashMap() { super(BindingRoot.create()) ; } // null?
/** Add a (name,value) */
- @Override
+ //@Override
protected void add1(Var var, Node node)
{
if ( ! Var.isAnonVar(var) )
@@ -66,7 +68,49 @@ public class BindingMap extends BindingB
return map.get(var) ;
}
- @Override
+ /** Add a (var,value) - the node value is never null */
+ //@Override
+ final public void add(Var var, Node node)
+ {
+ if ( node == null )
+ {
+ Log.warn(this, "Binding.add: null value - ignored") ;
+ return ;
+ }
+ checkAdd(var, node) ;
+ add1(var, node) ;
+ }
+
+ //@Override
+ final public void addAll(Binding other)
+ {
+ Iterator<Var> iter = other.vars() ;
+ for ( ; iter.hasNext(); )
+ {
+ Var v = iter.next();
+ Node n = other.get(v) ;
+ add(v, n) ;
+ }
+ }
+
+ private void checkAdd(Var var, Node node)
+ {
+ if ( ! CHECKING )
+ return ;
+ if ( var == null )
+ throw new ARQInternalErrorException("check("+var+", "+node+"): null var" ) ;
+ if ( node == null )
+ throw new ARQInternalErrorException("check("+var+", "+node+"): null node value" ) ;
+ if ( UNIQUE_NAMES_CHECK && contains(var) )
+ throw new ARQInternalErrorException("Attempt to reassign '"+var+
+ "' from '"+FmtUtils.stringForNode(get(var))+
+ "' to '"+FmtUtils.stringForNode(node)+"'") ;
+ // Let the implementation do a check as well.
+ checkAdd1(var, node) ;
+ }
+
+
+ //@Override
protected void checkAdd1(Var v, Node node) { }
}
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingMap.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingMap.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingMap.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingMap.java Sun Sep 25 19:11:52 2011
@@ -1,98 +1,39 @@
-/*
- * (c) Copyright 2004, 2005, 2006, 2007, 2008, 2009 Hewlett-Packard Development Company, LP
- * [See end of file]
- */
-
-package com.hp.hpl.jena.sparql.engine.binding;
-
-import java.util.HashMap ;
-import java.util.Iterator ;
-import java.util.Map ;
-
-import com.hp.hpl.jena.graph.Node ;
-import com.hp.hpl.jena.sparql.core.Var ;
-
-
-/** A mapping from a name to a value such that we can create a tree of levels
- * with higher (earlier levels) being shared.
- * Looking up a name is done by looking in the current level,
- * then trying the parent is not found. */
-
-
-public class BindingMap extends BindingBase
-{
- // Bindings are often small. Is this overkill?
- Map<Var, Node> map = new HashMap<Var, Node>() ;
-
- /** Using BindingFactory.create is better */
- public BindingMap(Binding parent) { super(parent) ; }
- /** Using BindingFactory.create is better */
- public BindingMap() { super(BindingRoot.create()) ; } // null?
-
- /** Add a (name,value) */
-
- @Override
- protected void add1(Var var, Node node)
- {
- if ( ! Var.isAnonVar(var) )
- map.put(var, node) ;
- }
-
- @Override
- protected int size1() { return map.size() ; }
-
- @Override
- protected boolean isEmpty1() { return map.isEmpty() ; }
-
- /** Iterate over all the names of variables.
- */
- @Override
- public Iterator<Var> vars1()
- {
- // Assumes that varnames are NOT duplicated.
- Iterator<Var> iter = map.keySet().iterator() ;
- return iter ;
- }
-
- @Override
- public boolean contains1(Var var)
- {
- return map.containsKey(var) ;
- }
-
- @Override
- public Node get1(Var var)
- {
- return map.get(var) ;
- }
-
- @Override
- protected void checkAdd1(Var v, Node node) { }
-}
-
-/*
- * (c) Copyright 2004, 2005, 2006, 2007, 2008, 2009 Hewlett-Packard Development Company, LP
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.hp.hpl.jena.sparql.engine.binding;
+
+import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.sparql.core.Var ;
+
+/** Bindings are immutable, and are equal-by-value, but
+ * they have to be constructed
+ * somehow and this interface captures that.
+ * Bindings should be created, then not changed, and
+ * returned as type "Binding".
+ */
+
+public interface BindingMap extends Binding
+{
+ /** Add a (var, value) pair- the value must not be null */
+ public void add(Var var, Node node) ;
+
+ /** Add all the (var, value) pairs from another binding */
+ public void addAll(Binding other) ;
+}
+
Added: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingMutable.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingMutable.java?rev=1175530&view=auto
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingMutable.java (added)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingMutable.java Sun Sep 25 19:11:52 2011
@@ -0,0 +1,32 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.hp.hpl.jena.sparql.engine.binding;
+
+import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.sparql.core.Var ;
+
+public interface BindingMutable extends Binding
+{
+ /** Add a (var, value) pair - the value must not be null */
+ public void add(Var var, Node node) ;
+
+ /** Add all the var/node pairs from another binding */
+ public void addAll(Binding key) ;
+}
+
Propchange: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingMutable.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingProjectBase.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingProjectBase.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingProjectBase.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingProjectBase.java Sun Sep 25 19:11:52 2011
@@ -30,13 +30,13 @@ public abstract class BindingProjectBase
binding = bind ;
}
- @Override
- protected void add1(Var var, Node node)
- { throw new UnsupportedOperationException("BindingProject.add1") ; }
-
- @Override
- protected void checkAdd1(Var var, Node node)
- {}
+// @Override
+// protected void add1(Var var, Node node)
+// { throw new UnsupportedOperationException("BindingProject.add1") ; }
+//
+// @Override
+// protected void checkAdd1(Var var, Node node)
+// {}
protected abstract boolean accept(Var var) ;
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingUtils.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingUtils.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingUtils.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/binding/BindingUtils.java Sun Sep 25 19:11:52 2011
@@ -45,7 +45,7 @@ public class BindingUtils
if ( qSolution instanceof ResultBinding )
// Only named variables.
return new BindingProjectNamed( ((ResultBinding)qSolution).getBinding() ) ;
- BindingMap binding = new BindingMap(null) ;
+ BindingMap binding = BindingFactory.create() ;
addToBinding(binding, qSolution) ;
return binding ;
}
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/iterator/QueryIterCommonParent.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/iterator/QueryIterCommonParent.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/iterator/QueryIterCommonParent.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/iterator/QueryIterCommonParent.java Sun Sep 25 19:11:52 2011
@@ -14,6 +14,7 @@ import com.hp.hpl.jena.sparql.core.Var ;
import com.hp.hpl.jena.sparql.engine.ExecutionContext ;
import com.hp.hpl.jena.sparql.engine.QueryIterator ;
import com.hp.hpl.jena.sparql.engine.binding.Binding ;
+import com.hp.hpl.jena.sparql.engine.binding.BindingFactory ;
import com.hp.hpl.jena.sparql.engine.binding.BindingMap ;
import org.openjena.atlas.logging.Log ;
@@ -41,7 +42,7 @@ public class QueryIterCommonParent exten
return b ;
// This is the result. Could have BindingBase.setParent etc.
- BindingMap b2 = new BindingMap(parentBinding) ;
+ BindingMap b2 = BindingFactory.create(parentBinding) ;
// Copy the resultSet bindings to the combined result binding with checking.
for ( Iterator<Var> iter = b.vars() ; iter.hasNext(); )
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/graph/Reifier2.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/graph/Reifier2.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/graph/Reifier2.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/graph/Reifier2.java Sun Sep 25 19:11:52 2011
@@ -35,6 +35,7 @@ import com.hp.hpl.jena.sparql.engine.Que
import com.hp.hpl.jena.sparql.engine.QueryEngineRegistry ;
import com.hp.hpl.jena.sparql.engine.QueryIterator ;
import com.hp.hpl.jena.sparql.engine.binding.Binding ;
+import com.hp.hpl.jena.sparql.engine.binding.BindingFactory ;
import com.hp.hpl.jena.sparql.engine.binding.BindingMap ;
import com.hp.hpl.jena.sparql.engine.binding.BindingRoot ;
import com.hp.hpl.jena.util.iterator.ExtendedIterator ;
@@ -114,7 +115,7 @@ public class Reifier2 implements Reifier
if ( node != null || triple != null )
{
- BindingMap b2 = new BindingMap(b) ;
+ BindingMap b2 = BindingFactory.create(b) ;
if ( node != null )
bind(b2, reifNodeVar, node) ;
if ( triple != null )
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/lang/ParserQueryBase.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/lang/ParserQueryBase.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/lang/ParserQueryBase.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/lang/ParserQueryBase.java Sun Sep 25 19:11:52 2011
@@ -17,6 +17,7 @@ import com.hp.hpl.jena.query.Query ;
import com.hp.hpl.jena.query.QueryParseException ;
import com.hp.hpl.jena.sparql.core.Var ;
import com.hp.hpl.jena.sparql.engine.binding.Binding ;
+import com.hp.hpl.jena.sparql.engine.binding.BindingFactory ;
import com.hp.hpl.jena.sparql.engine.binding.BindingMap ;
import com.hp.hpl.jena.sparql.modify.request.QuadAcc ;
import com.hp.hpl.jena.sparql.modify.request.QuadDataAcc ;
@@ -156,7 +157,7 @@ public class ParserQueryBase extends Par
protected void startBindingValueRow(int line, int col)
{
- values.add(new BindingMap()) ;
+ values.add(BindingFactory.create()) ;
currentColumn = -1 ;
}
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/pfunction/library/splitIRI.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/pfunction/library/splitIRI.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/pfunction/library/splitIRI.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/pfunction/library/splitIRI.java Sun Sep 25 19:11:52 2011
@@ -13,6 +13,7 @@ import com.hp.hpl.jena.sparql.core.Var ;
import com.hp.hpl.jena.sparql.engine.ExecutionContext ;
import com.hp.hpl.jena.sparql.engine.QueryIterator ;
import com.hp.hpl.jena.sparql.engine.binding.Binding ;
+import com.hp.hpl.jena.sparql.engine.binding.BindingFactory ;
import com.hp.hpl.jena.sparql.engine.binding.BindingMap ;
import com.hp.hpl.jena.sparql.pfunction.PropFuncArg ;
import com.hp.hpl.jena.sparql.pfunction.PropFuncArgType ;
@@ -82,7 +83,7 @@ public class splitIRI extends PropertyFu
// New binding to return.
BindingMap b = null ;
if ( Var.isVar(namespaceNode) || Var.isVar(localnameNode) )
- b = new BindingMap(binding) ;
+ b = BindingFactory.create(binding) ;
if ( Var.isVar(namespaceNode) ) // .isVariable() )
{
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/JSONInput.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/JSONInput.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/JSONInput.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/JSONInput.java Sun Sep 25 19:11:52 2011
@@ -42,6 +42,7 @@ import com.hp.hpl.jena.rdf.model.Model ;
import com.hp.hpl.jena.sparql.core.ResultBinding ;
import com.hp.hpl.jena.sparql.core.Var ;
import com.hp.hpl.jena.sparql.engine.binding.Binding ;
+import com.hp.hpl.jena.sparql.engine.binding.BindingFactory ;
import com.hp.hpl.jena.sparql.engine.binding.BindingMap ;
import com.hp.hpl.jena.sparql.util.LabelToNodeMap ;
import com.hp.hpl.jena.sparql.util.NodeFactory ;
@@ -281,7 +282,7 @@ public class JSONInput extends SPARQLRes
if (row < 0 || row >= jbindings.size())
return null;
- BindingMap binding = new BindingMap() ;
+ BindingMap binding = BindingFactory.create() ;
JsonObject jsolution = jbindings.get(row).getAsObject() ;
for ( String varName : jsolution.keys() )
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/SortedResultSet.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/SortedResultSet.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/SortedResultSet.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/SortedResultSet.java Sun Sep 25 19:11:52 2011
@@ -22,6 +22,7 @@ import com.hp.hpl.jena.sparql.core.Var ;
import com.hp.hpl.jena.sparql.engine.QueryIterator ;
import com.hp.hpl.jena.sparql.engine.binding.Binding ;
import com.hp.hpl.jena.sparql.engine.binding.BindingComparator ;
+import com.hp.hpl.jena.sparql.engine.binding.BindingFactory ;
import com.hp.hpl.jena.sparql.engine.binding.BindingMap ;
import com.hp.hpl.jena.sparql.engine.iterator.QueryIterPlainWrapper ;
@@ -111,7 +112,7 @@ public class SortedResultSet implements
private Binding copyToBinding(QuerySolution qs)
{
- BindingMap b = new BindingMap() ;
+ BindingMap b = BindingFactory.create() ;
for ( Iterator<String> iter = qs.varNames() ; iter.hasNext() ; )
{
String varName = iter.next() ;
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/XMLInputSAX.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/XMLInputSAX.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/XMLInputSAX.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/XMLInputSAX.java Sun Sep 25 19:11:52 2011
@@ -11,6 +11,7 @@ import java.io.InputStream ;
import java.util.ArrayList ;
import java.util.List ;
+import org.openjena.atlas.logging.Log ;
import org.xml.sax.Attributes ;
import org.xml.sax.ContentHandler ;
import org.xml.sax.InputSource ;
@@ -26,9 +27,9 @@ import com.hp.hpl.jena.rdf.model.Model ;
import com.hp.hpl.jena.sparql.core.Var ;
import com.hp.hpl.jena.sparql.engine.ResultSetStream ;
import com.hp.hpl.jena.sparql.engine.binding.Binding ;
+import com.hp.hpl.jena.sparql.engine.binding.BindingFactory ;
import com.hp.hpl.jena.sparql.engine.binding.BindingMap ;
import com.hp.hpl.jena.sparql.engine.iterator.QueryIterPlainWrapper ;
-import org.openjena.atlas.logging.Log ;
import com.hp.hpl.jena.sparql.util.FmtUtils ;
import com.hp.hpl.jena.sparql.util.LabelToNodeMap ;
import com.hp.hpl.jena.sparql.util.graph.GraphFactory ;
@@ -172,7 +173,7 @@ class XMLInputSAX extends SPARQLResult
if ( localName.equals(XMLResults.dfSolution) )
{
- binding = new BindingMap() ;
+ binding = BindingFactory.create() ;
return ;
}
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/XMLInputStAX.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/XMLInputStAX.java?rev=1175530&r1=1175529&r2=1175530&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/XMLInputStAX.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/XMLInputStAX.java Sun Sep 25 19:11:52 2011
@@ -20,6 +20,7 @@ import javax.xml.stream.XMLStreamReader
import org.openjena.atlas.lib.Closeable ;
import org.openjena.atlas.lib.StrUtils ;
+import org.openjena.atlas.logging.Log ;
import com.hp.hpl.jena.datatypes.RDFDatatype ;
import com.hp.hpl.jena.datatypes.TypeMapper ;
@@ -33,8 +34,8 @@ import com.hp.hpl.jena.sparql.ARQConstan
import com.hp.hpl.jena.sparql.core.ResultBinding ;
import com.hp.hpl.jena.sparql.core.Var ;
import com.hp.hpl.jena.sparql.engine.binding.Binding ;
+import com.hp.hpl.jena.sparql.engine.binding.BindingFactory ;
import com.hp.hpl.jena.sparql.engine.binding.BindingMap ;
-import org.openjena.atlas.logging.Log ;
import com.hp.hpl.jena.sparql.util.LabelToNodeMap ;
import com.hp.hpl.jena.sparql.util.graph.GraphFactory ;
@@ -402,7 +403,7 @@ class XMLInputStAX extends SPARQLResult
private Binding getOneSolution() throws XMLStreamException
{
// At the start of <result>
- BindingMap binding = new BindingMap() ;
+ BindingMap binding = BindingFactory.create() ;
String varName = null ;
while(parser.hasNext())
@@ -427,7 +428,7 @@ class XMLInputStAX extends SPARQLResult
tag = parser.getLocalName() ;
if ( isTag(tag, XMLResults.dfSolution) )
{
- binding = new BindingMap() ;
+ binding = BindingFactory.create() ;
break ;
}
if ( isTag(tag, XMLResults.dfBinding ))