Class ElementTreeAnalyser

java.lang.Object
org.aksw.jena_sparql_api.sparql_path.core.ElementTreeAnalyser
All Implemented Interfaces:
org.apache.jena.sparql.syntax.ElementVisitor

public class ElementTreeAnalyser extends Object implements org.apache.jena.sparql.syntax.ElementVisitor

Utility class that walks the Elements of an ARQ query tree and collects information that is later used to build an SQL query.

The class provides a different view on the tree of Element instances. In this view, the nodes are ElementTreeAnalyser instances, and the structure of the tree differs in several ways from the Element tree:

  • ElementGroups and ElementBlocks are flattened away
  • Only OPTIONALs and UNIONs are presented as child nodes
  • The difference between ElementTriplePattern and ElementBasePattern is hidden
  • Some obvious simplifications have been done, like dropping OPTIONALs that do not bind, or flatten single-element UNIONs
  • GRAPH clauses and triples are flattened into triples, quads, and graphNames, where triples are to be matched against the default graph, quads are to be matched against the named graphs, and graphNames are to be matched against the list of graph names, regardless of triples therein.
Version:
$Id$
Author:
Richard Cyganiak (richard@cyganiak.de)
  • Constructor Summary

    Constructors
    Constructor
    Description
    ElementTreeAnalyser(org.apache.jena.sparql.syntax.Element element)
     
    ElementTreeAnalyser(org.apache.jena.sparql.syntax.Element element, org.apache.jena.graph.Node defaultGraphName)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
     
    List<org.apache.jena.sparql.expr.Expr>
     
    List<org.apache.jena.graph.Node>
     
     
    List<org.apache.jena.sparql.core.Quad>
     
     
    boolean
     
    boolean
     
     
     
    void
    visit(org.apache.jena.sparql.syntax.ElementAntiJoin el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementAssign el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementBind el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementData el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementDataset el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementExists el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementFilter el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementGroup el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementLateral el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementMinus el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementNamedGraph el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementNotExists el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementOptional el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementPathBlock el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementSemiJoin el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementService el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementSubQuery el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementTriplesBlock el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementUnfold el)
     
    void
    visit(org.apache.jena.sparql.syntax.ElementUnion el)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ElementTreeAnalyser

      public ElementTreeAnalyser(org.apache.jena.sparql.syntax.Element element)
    • ElementTreeAnalyser

      public ElementTreeAnalyser(org.apache.jena.sparql.syntax.Element element, org.apache.jena.graph.Node defaultGraphName)
  • Method Details

    • isEmpty

      public boolean isEmpty()
    • canBind

      public boolean canBind()
    • mustMatchTriple

      public boolean mustMatchTriple()
    • getQuads

      public List<org.apache.jena.sparql.core.Quad> getQuads()
    • getOptionals

      public List<ElementTreeAnalyser> getOptionals()
    • getGraphNames

      public List<org.apache.jena.graph.Node> getGraphNames()
    • getUnions

      public List<ElementTreeAnalyser> getUnions()
    • optionals

      public List<ElementTreeAnalyser> optionals()
    • unions

      public List<ElementTreeAnalyser> unions()
    • getFilterExprs

      public List<org.apache.jena.sparql.expr.Expr> getFilterExprs()
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementTriplesBlock el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementFilter el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementUnion el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementOptional el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementGroup el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementNamedGraph el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementPathBlock el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementAssign el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementBind el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementData el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementDataset el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementExists el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementNotExists el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementMinus el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementService el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementSubQuery el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementLateral el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementUnfold el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementSemiJoin el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor
    • visit

      public void visit(org.apache.jena.sparql.syntax.ElementAntiJoin el)
      Specified by:
      visit in interface org.apache.jena.sparql.syntax.ElementVisitor