Add various utility operations to find variables in structures. Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/964e10f1 Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/964e10f1 Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/964e10f1
Branch: refs/heads/JENA-507 Commit: 964e10f1205223c966da10779f37024a8e092120 Parents: 657593b Author: Andy Seaborne <[email protected]> Authored: Sat Sep 5 21:43:15 2015 +0100 Committer: Andy Seaborne <[email protected]> Committed: Sat Sep 5 21:43:15 2015 +0100 ---------------------------------------------------------------------- .../org/apache/jena/sparql/util/VarUtils.java | 86 ++++++++++++-------- 1 file changed, 51 insertions(+), 35 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/964e10f1/jena-arq/src/main/java/org/apache/jena/sparql/util/VarUtils.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/VarUtils.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/VarUtils.java index 18b55c8..e2e73e6 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/util/VarUtils.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/VarUtils.java @@ -18,56 +18,72 @@ package org.apache.jena.sparql.util; -import java.util.Collection ; -import java.util.HashSet ; -import java.util.Set ; +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; -import org.apache.jena.graph.Node ; -import org.apache.jena.graph.Triple ; -import org.apache.jena.sparql.core.BasicPattern ; -import org.apache.jena.sparql.core.TriplePath ; -import org.apache.jena.sparql.core.Var ; +import org.apache.jena.graph.Node; +import org.apache.jena.graph.Triple; +import org.apache.jena.sparql.core.* ; -public class VarUtils -{ - public static Set<Var> getVars(Triple triple) - { - Set<Var> x = new HashSet<>() ; - addVarsFromTriple(x, triple) ; - return x ; +public class VarUtils { + public static Set<Var> getVars(Triple triple) { + Set<Var> x = new HashSet<>(); + addVarsFromTriple(x, triple); + return x; } - - public static void addVarsFromTriple(Collection<Var> acc, Triple t) - { - addVar(acc, t.getSubject()) ; - addVar(acc, t.getPredicate()) ; - addVar(acc, t.getObject()) ; + + public static void addVarsFromTriple(Collection<Var> acc, Triple triple) { + addVar(acc, triple.getSubject()); + addVar(acc, triple.getPredicate()); + addVar(acc, triple.getObject()); + } + + public static void addVarsFromQuad(Collection<Var> acc, Quad quad) { + addVar(acc, quad.getGraph()); + addVar(acc, quad.getSubject()); + addVar(acc, quad.getPredicate()); + addVar(acc, quad.getObject()); } - public static void addVarsFromTriplePath(Collection<Var> acc, TriplePath tpath) - { - addVar(acc, tpath.getSubject()) ; - addVar(acc, tpath.getObject()) ; + public static void addVarsFromTriplePath(Collection<Var> acc, TriplePath tpath) { + addVar(acc, tpath.getSubject()); + addVar(acc, tpath.getObject()); } - public static void addVar(Collection<Var> acc, Node n) - { + public static void addVar(Collection<Var> acc, Node n) { if ( n == null ) - return ; + return; if ( n.isVariable() ) - acc.add(Var.alloc(n)) ; + acc.add(Var.alloc(n)); } - public static void addVars(Collection<Var> acc, BasicPattern pattern) - { - addVars(acc, pattern.getList()) ; + // Name to avoid erasure clash + public static void addVarNodes(Collection<Var> acc, Collection<Node> nodes) { + for ( Node n : nodes ) + addVar(acc, n) ; } - public static void addVars(Collection<Var> acc, Collection<Triple> triples) - { + public static void addVarsTriples(Collection<Var> acc, Collection<Triple> triples) { for ( Triple triple : triples ) - addVarsFromTriple(acc, triple) ; + addVarsFromTriple(acc, triple); + } + + public static void addVars(Collection<Var> acc, BasicPattern pattern) { + addVarsTriples(acc, pattern.getList()); } + public static void addVars(Collection<Var> acc, Node graphNode, BasicPattern triples) { + addVar(acc, graphNode) ; + addVars(acc, triples) ; + } + + public static void addVars(Collection<Var> acc, QuadPattern quadPattern) { + for ( Quad quad : quadPattern.getList() ) { + addVarsFromQuad(acc, quad) ; + } + } + + }
