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 2012/02/07 21:45:10 UTC
svn commit: r1241609 -
/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/TemplateLib.java
Author: andy
Date: Tue Feb 7 20:45:09 2012
New Revision: 1241609
URL: http://svn.apache.org/viewvc?rev=1241609&view=rev
Log:
Remove warning for technically correct skipping on partially bound quads.
Modified:
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/TemplateLib.java
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/TemplateLib.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/TemplateLib.java?rev=1241609&r1=1241608&r2=1241609&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/TemplateLib.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/TemplateLib.java Tue Feb 7 20:45:09 2012
@@ -18,47 +18,26 @@
package com.hp.hpl.jena.sparql.modify;
-import java.util.ArrayList ;
-import java.util.HashMap ;
-import java.util.Iterator ;
-import java.util.List ;
-import java.util.Map ;
+import java.util.* ;
import org.openjena.atlas.iterator.Iter ;
import org.openjena.atlas.iterator.Transform ;
-import org.openjena.atlas.lib.MultiMap ;
-import org.openjena.atlas.logging.Log ;
import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.graph.Triple ;
import com.hp.hpl.jena.sparql.core.Quad ;
import com.hp.hpl.jena.sparql.core.Substitute ;
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.iterator.QueryIterPlainWrapper ;
-import com.hp.hpl.jena.sparql.util.FmtUtils ;
public class TemplateLib
{
// See also Substitute -- combine?
// Or is this specifc enough to CONSTRUCT/Update template processing?
- /** Take a template, as a list of quad patterns, a default graph, and a list of bindings,
- * and produce a map of graph name to lists of triples.
- */
- public static MultiMap<Node, Triple> template(List<Quad> quads, final Node dftGraph, List<Binding> bindings)
- {
- if ( quads == null || quads.isEmpty() ) return null ;
-
- quads = remapDefaultGraph(quads, dftGraph);
- MultiMap<Node, Triple> acc = calcTriples(quads, bindings) ;
- return acc ;
- }
-
/**
* Take a template, as a list of quad patterns, a default graph, and an iterator of bindings,
- * and produce an iterator of quads that result from applying the template to the bindings.
+ * and produce an iterator of quads that results from applying the template to the bindings.
*/
public static Iterator<Quad> template(List<Quad> quads, final Node dftGraph, Iterator<Binding> bindings)
{
@@ -87,49 +66,17 @@ public class TemplateLib
return quads;
}
- /** Substitute into quad patterns, and build a map of graph name to lists of triples */
- public static MultiMap<Node, Triple> calcTriples(List<Quad> quads, List<Binding> bindings)
- {
- QueryIterator qIter = new QueryIterPlainWrapper(bindings.iterator()) ;
- return subst(quads, qIter) ;
- }
-
- /** Substitute into quad patterns, and build a map of graph name to lists of triples */
- protected static MultiMap<Node, Triple> subst(List<Quad> quads, QueryIterator qIter)
- {
- MultiMap<Node, Triple> acc = MultiMap.createMapList() ;
-
- for ( ; qIter.hasNext() ; )
- {
- Map<Node, Node> bNodeMap = new HashMap<Node, Node>() ;
- Binding b = qIter.nextBinding() ;
- for ( Quad quad : quads )
- subst(acc, quad, b, bNodeMap) ;
- }
- return acc ;
- }
-
- static void subst(MultiMap<Node, Triple> acc, Quad quad, Binding b, Map<Node, Node> bNodeMap)
- {
- Quad q = subst(quad, b, bNodeMap) ;
- if ( ! q.isConcrete() )
- {
- Log.warn(TemplateLib.class, "Unbound quad: "+FmtUtils.stringForQuad(quad)) ;
- return ;
- }
- acc.put(q.getGraph(), q.asTriple()) ;
- }
-
/** Substitute into quad patterns */
public static Iterator<Quad> calcQuads(final List<Quad> quads, Iterator<Binding> bindings)
{
return Iter.mapMany(bindings, new Transform<Binding, Iterator<Quad>>()
{
+ Map<Node, Node> bNodeMap = new HashMap<Node, Node>() ;
@Override
public Iterator<Quad> convert(final Binding b)
{
// Iteration is a new mapping of bnodes.
- final Map<Node, Node> bNodeMap = new HashMap<Node, Node>() ;
+ bNodeMap.clear() ;
List<Quad> quadList = new ArrayList<Quad>(quads.size());
for (Quad quad : quads)
@@ -137,7 +84,7 @@ public class TemplateLib
Quad q = subst(quad, b, bNodeMap) ;
if ( ! q.isConcrete() )
{
- Log.warn(TemplateLib.class, "Unbound quad: "+FmtUtils.stringForQuad(quad)) ;
+ //Log.warn(TemplateLib.class, "Unbound quad: "+FmtUtils.stringForQuad(quad)) ;
continue ;
}
quadList.add(q);