Class VarUsageAnalyzerVisitor

java.lang.Object
org.apache.jena.sparql.algebra.OpVisitorBase
org.aksw.jena_sparql_api.algebra.analysis.VarUsageAnalyzerVisitor
All Implemented Interfaces:
org.apache.jena.sparql.algebra.OpVisitor

public class VarUsageAnalyzerVisitor extends org.apache.jena.sparql.algebra.OpVisitorBase
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected Set<org.apache.jena.sparql.core.Var>
    Variables visible at the current node
    protected org.apache.jena.sparql.algebra.Op
    The node for which the current information holds.
    protected Set<org.apache.jena.sparql.core.Var>
     
    protected Set<org.apache.jena.sparql.core.Var>
    Variables of the current node that are referenced either in expressions (e.g.
    protected org.aksw.commons.collections.trees.Tree<org.apache.jena.sparql.algebra.Op>
    Tree structure over the algebra expression - allows traversal to parent nodes.
    protected Set<Set<org.apache.jena.sparql.core.Var>>
     
    protected com.google.common.collect.Multimap<org.apache.jena.sparql.core.Var,org.apache.jena.sparql.core.Var>
    Map for tracking assignments, i.e.
  • Constructor Summary

    Constructors
    Constructor
    Description
    VarUsageAnalyzerVisitor(org.aksw.commons.collections.trees.Tree<org.apache.jena.sparql.algebra.Op> tree, org.apache.jena.sparql.algebra.Op current)
     
    VarUsageAnalyzerVisitor(org.aksw.commons.collections.trees.Tree<org.apache.jena.sparql.algebra.Op> tree, org.apache.jena.sparql.algebra.Op current, Set<org.apache.jena.sparql.core.Var> availableVars)
     
  • Method Summary

    Modifier and Type
    Method
    Description
     
    void
     
    void
    processExpr(org.apache.jena.sparql.expr.Expr expr)
     
    void
    processExprs(org.apache.jena.sparql.expr.ExprList exprs)
     
    void
    processExtend(org.apache.jena.sparql.core.VarExprList vel)
     
    void
    processJoin(Collection<org.apache.jena.sparql.algebra.Op> children)
     
    void
    setCurrent(org.apache.jena.sparql.algebra.Op current)
     
    void
    visit(org.apache.jena.sparql.algebra.op.OpAssign op)
     
    void
    visit(org.apache.jena.sparql.algebra.op.OpDistinct op)
     
    void
    visit(org.apache.jena.sparql.algebra.op.OpExtend op)
     
    void
    visit(org.apache.jena.sparql.algebra.op.OpFilter op)
     
    void
    visit(org.apache.jena.sparql.algebra.op.OpGroup op)
     
    void
    visit(org.apache.jena.sparql.algebra.op.OpJoin op)
     
    void
    visit(org.apache.jena.sparql.algebra.op.OpLeftJoin op)
     
    void
    visit(org.apache.jena.sparql.algebra.op.OpOrder op)
     
    void
    visit(org.apache.jena.sparql.algebra.op.OpProject op)
     
    void
    visit(org.apache.jena.sparql.algebra.op.OpReduced op)
     
    void
    visit(org.apache.jena.sparql.algebra.op.OpSequence op)
     

    Methods inherited from class org.apache.jena.sparql.algebra.OpVisitorBase

    visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.apache.jena.sparql.algebra.OpVisitor

    visit
  • Field Details

    • tree

      protected org.aksw.commons.collections.trees.Tree<org.apache.jena.sparql.algebra.Op> tree
      Tree structure over the algebra expression - allows traversal to parent nodes. (internally uses an IdentityHashMap to discriminate between equal sub-trees)
    • current

      protected org.apache.jena.sparql.algebra.Op current
      The node for which the current information holds. For correct functioning, the next visited node must be the current node's parent.
    • availableVars

      protected Set<org.apache.jena.sparql.core.Var> availableVars
      Variables visible at the current node
    • referencedVars

      protected Set<org.apache.jena.sparql.core.Var> referencedVars
      Variables of the current node that are referenced either in expressions (e.g. filters) or needed for joins
    • nonUnique

      protected Set<org.apache.jena.sparql.core.Var> nonUnique
    • varDeps

      protected com.google.common.collect.Multimap<org.apache.jena.sparql.core.Var,org.apache.jena.sparql.core.Var> varDeps
      Map for tracking assignments, i.e. which variables are required to compute the value of another variable. Newly introduced variables (such as by graph patterns) depend on themselves.
    • uniqueSets

      protected Set<Set<org.apache.jena.sparql.core.Var>> uniqueSets
  • Constructor Details

    • VarUsageAnalyzerVisitor

      public VarUsageAnalyzerVisitor(org.aksw.commons.collections.trees.Tree<org.apache.jena.sparql.algebra.Op> tree, org.apache.jena.sparql.algebra.Op current)
    • VarUsageAnalyzerVisitor

      public VarUsageAnalyzerVisitor(org.aksw.commons.collections.trees.Tree<org.apache.jena.sparql.algebra.Op> tree, org.apache.jena.sparql.algebra.Op current, Set<org.apache.jena.sparql.core.Var> availableVars)
  • Method Details

    • getResult

      public VarUsage getResult()
    • setCurrent

      public void setCurrent(org.apache.jena.sparql.algebra.Op current)
    • processExtend

      public void processExtend(org.apache.jena.sparql.core.VarExprList vel)
    • processExprs

      public void processExprs(org.apache.jena.sparql.expr.ExprList exprs)
    • processExpr

      public void processExpr(org.apache.jena.sparql.expr.Expr expr)
    • processJoin

      public void processJoin(Collection<org.apache.jena.sparql.algebra.Op> children)
    • processDistinct

      public void processDistinct()
    • visit

      public void visit(org.apache.jena.sparql.algebra.op.OpProject op)
      Specified by:
      visit in interface org.apache.jena.sparql.algebra.OpVisitor
      Overrides:
      visit in class org.apache.jena.sparql.algebra.OpVisitorBase
    • visit

      public void visit(org.apache.jena.sparql.algebra.op.OpJoin op)
      Specified by:
      visit in interface org.apache.jena.sparql.algebra.OpVisitor
      Overrides:
      visit in class org.apache.jena.sparql.algebra.OpVisitorBase
    • visit

      public void visit(org.apache.jena.sparql.algebra.op.OpLeftJoin op)
      Specified by:
      visit in interface org.apache.jena.sparql.algebra.OpVisitor
      Overrides:
      visit in class org.apache.jena.sparql.algebra.OpVisitorBase
    • visit

      public void visit(org.apache.jena.sparql.algebra.op.OpSequence op)
      Specified by:
      visit in interface org.apache.jena.sparql.algebra.OpVisitor
      Overrides:
      visit in class org.apache.jena.sparql.algebra.OpVisitorBase
    • visit

      public void visit(org.apache.jena.sparql.algebra.op.OpFilter op)
      Specified by:
      visit in interface org.apache.jena.sparql.algebra.OpVisitor
      Overrides:
      visit in class org.apache.jena.sparql.algebra.OpVisitorBase
    • visit

      public void visit(org.apache.jena.sparql.algebra.op.OpGroup op)
      Specified by:
      visit in interface org.apache.jena.sparql.algebra.OpVisitor
      Overrides:
      visit in class org.apache.jena.sparql.algebra.OpVisitorBase
    • visit

      public void visit(org.apache.jena.sparql.algebra.op.OpExtend op)
      Specified by:
      visit in interface org.apache.jena.sparql.algebra.OpVisitor
      Overrides:
      visit in class org.apache.jena.sparql.algebra.OpVisitorBase
    • visit

      public void visit(org.apache.jena.sparql.algebra.op.OpAssign op)
      Specified by:
      visit in interface org.apache.jena.sparql.algebra.OpVisitor
      Overrides:
      visit in class org.apache.jena.sparql.algebra.OpVisitorBase
    • visit

      public void visit(org.apache.jena.sparql.algebra.op.OpOrder op)
      Specified by:
      visit in interface org.apache.jena.sparql.algebra.OpVisitor
      Overrides:
      visit in class org.apache.jena.sparql.algebra.OpVisitorBase
    • visit

      public void visit(org.apache.jena.sparql.algebra.op.OpDistinct op)
      Specified by:
      visit in interface org.apache.jena.sparql.algebra.OpVisitor
      Overrides:
      visit in class org.apache.jena.sparql.algebra.OpVisitorBase
    • visit

      public void visit(org.apache.jena.sparql.algebra.op.OpReduced op)
      Specified by:
      visit in interface org.apache.jena.sparql.algebra.OpVisitor
      Overrides:
      visit in class org.apache.jena.sparql.algebra.OpVisitorBase