Class VarUsageAnalyzer2Visitor
java.lang.Object
org.apache.jena.sparql.algebra.OpVisitorBase
org.aksw.jena_sparql_api.algebra.analysis.VarUsageAnalyzer2Visitor
- All Implemented Interfaces:
org.apache.jena.sparql.algebra.OpVisitor
public class VarUsageAnalyzer2Visitor
extends org.apache.jena.sparql.algebra.OpVisitorBase
-
Field Summary
FieldsModifier and TypeFieldDescriptionTree structure over the algebra expression - allows traversal to parent nodes. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionallocate(org.apache.jena.sparql.algebra.Op op) analyze(org.apache.jena.sparql.algebra.Op op) analyze(org.apache.jena.sparql.algebra.Op op, VarUsageAnalyzer2Visitor varUsageAnalyzer) static voidmarkEssential(Map<org.apache.jena.sparql.algebra.Op, VarUsage2> opToVarUsage, org.apache.jena.sparql.algebra.Op op, Set<org.apache.jena.sparql.core.Var> vars) Marks variables as essential If variables were created through assignment, the dependent variables are marked as essential as well.voidmarkEssential(org.apache.jena.sparql.algebra.Op op, Set<org.apache.jena.sparql.core.Var> vars) Descend into to op-tree and mark all non-required supplied variables as non-requiredvoidprocessDistinct(org.apache.jena.sparql.algebra.Op op, org.apache.jena.sparql.algebra.Op subOp) Descend into the sub tree and markvoidprocessExpr(org.apache.jena.sparql.algebra.Op op, org.apache.jena.sparql.expr.Expr expr) voidprocessExprs(org.apache.jena.sparql.algebra.Op op, org.apache.jena.sparql.expr.ExprList exprs) voidprocessExtend(org.apache.jena.sparql.algebra.Op op, org.apache.jena.sparql.algebra.Op subOp, org.apache.jena.sparql.core.VarExprList vel) voidprocessJoin(org.apache.jena.sparql.algebra.Op op, Collection<org.apache.jena.sparql.algebra.Op> subOps) voidprocessUnion(org.apache.jena.sparql.algebra.Op op, List<org.apache.jena.sparql.algebra.Op> subOps) voidpushDownDistinct(org.apache.jena.sparql.algebra.Op op) voidreuseVisibleVars(VarUsage2 target, org.apache.jena.sparql.algebra.Op subOp) voidvisit(org.apache.jena.sparql.algebra.op.OpAssign op) voidvisit(org.apache.jena.sparql.algebra.op.OpDisjunction op) voidvisit(org.apache.jena.sparql.algebra.op.OpDistinct op) voidvisit(org.apache.jena.sparql.algebra.op.OpExt opExt) voidvisit(org.apache.jena.sparql.algebra.op.OpExtend op) voidvisit(org.apache.jena.sparql.algebra.op.OpFilter op) voidvisit(org.apache.jena.sparql.algebra.op.OpGroup op) voidvisit(org.apache.jena.sparql.algebra.op.OpJoin op) voidvisit(org.apache.jena.sparql.algebra.op.OpLeftJoin op) voidvisit(org.apache.jena.sparql.algebra.op.OpOrder op) voidvisit(org.apache.jena.sparql.algebra.op.OpProject op) voidvisit(org.apache.jena.sparql.algebra.op.OpQuadPattern op) voidvisit(org.apache.jena.sparql.algebra.op.OpReduced op) voidvisit(org.apache.jena.sparql.algebra.op.OpSequence op) voidvisit(org.apache.jena.sparql.algebra.op.OpUnion 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
-
Field Details
-
opToVarUsage
Tree structure over the algebra expression - allows traversal to parent nodes. (internally uses an IdentityHashMap to discriminate between equal sub-trees)
-
-
Constructor Details
-
VarUsageAnalyzer2Visitor
public VarUsageAnalyzer2Visitor()
-
-
Method Details
-
getResult
-
processExprs
public void processExprs(org.apache.jena.sparql.algebra.Op op, org.apache.jena.sparql.expr.ExprList exprs) -
processExpr
public void processExpr(org.apache.jena.sparql.algebra.Op op, org.apache.jena.sparql.expr.Expr expr) -
processJoin
public void processJoin(org.apache.jena.sparql.algebra.Op op, Collection<org.apache.jena.sparql.algebra.Op> subOps) -
pushDownDistinct
public void pushDownDistinct(org.apache.jena.sparql.algebra.Op op) -
processDistinct
public void processDistinct(org.apache.jena.sparql.algebra.Op op, org.apache.jena.sparql.algebra.Op subOp) Descend into the sub tree and mark -
visit
public void visit(org.apache.jena.sparql.algebra.op.OpJoin op) - Specified by:
visitin interfaceorg.apache.jena.sparql.algebra.OpVisitor- Overrides:
visitin classorg.apache.jena.sparql.algebra.OpVisitorBase
-
visit
public void visit(org.apache.jena.sparql.algebra.op.OpLeftJoin op) - Specified by:
visitin interfaceorg.apache.jena.sparql.algebra.OpVisitor- Overrides:
visitin classorg.apache.jena.sparql.algebra.OpVisitorBase
-
visit
public void visit(org.apache.jena.sparql.algebra.op.OpSequence op) - Specified by:
visitin interfaceorg.apache.jena.sparql.algebra.OpVisitor- Overrides:
visitin classorg.apache.jena.sparql.algebra.OpVisitorBase
-
processUnion
public void processUnion(org.apache.jena.sparql.algebra.Op op, List<org.apache.jena.sparql.algebra.Op> subOps) -
visit
public void visit(org.apache.jena.sparql.algebra.op.OpDisjunction op) - Specified by:
visitin interfaceorg.apache.jena.sparql.algebra.OpVisitor- Overrides:
visitin classorg.apache.jena.sparql.algebra.OpVisitorBase
-
visit
public void visit(org.apache.jena.sparql.algebra.op.OpUnion op) - Specified by:
visitin interfaceorg.apache.jena.sparql.algebra.OpVisitor- Overrides:
visitin classorg.apache.jena.sparql.algebra.OpVisitorBase
-
visit
public void visit(org.apache.jena.sparql.algebra.op.OpGroup op) - Specified by:
visitin interfaceorg.apache.jena.sparql.algebra.OpVisitor- Overrides:
visitin classorg.apache.jena.sparql.algebra.OpVisitorBase
-
visit
public void visit(org.apache.jena.sparql.algebra.op.OpExtend op) - Specified by:
visitin interfaceorg.apache.jena.sparql.algebra.OpVisitor- Overrides:
visitin classorg.apache.jena.sparql.algebra.OpVisitorBase
-
visit
public void visit(org.apache.jena.sparql.algebra.op.OpExt opExt) -
visit
public void visit(org.apache.jena.sparql.algebra.op.OpAssign op) - Specified by:
visitin interfaceorg.apache.jena.sparql.algebra.OpVisitor- Overrides:
visitin classorg.apache.jena.sparql.algebra.OpVisitorBase
-
visit
public void visit(org.apache.jena.sparql.algebra.op.OpOrder op) - Specified by:
visitin interfaceorg.apache.jena.sparql.algebra.OpVisitor- Overrides:
visitin classorg.apache.jena.sparql.algebra.OpVisitorBase
-
processExtend
public void processExtend(org.apache.jena.sparql.algebra.Op op, org.apache.jena.sparql.algebra.Op subOp, org.apache.jena.sparql.core.VarExprList vel) -
reuseVisibleVars
-
visit
public void visit(org.apache.jena.sparql.algebra.op.OpFilter op) - Specified by:
visitin interfaceorg.apache.jena.sparql.algebra.OpVisitor- Overrides:
visitin classorg.apache.jena.sparql.algebra.OpVisitorBase
-
visit
public void visit(org.apache.jena.sparql.algebra.op.OpDistinct op) - Specified by:
visitin interfaceorg.apache.jena.sparql.algebra.OpVisitor- Overrides:
visitin classorg.apache.jena.sparql.algebra.OpVisitorBase
-
visit
public void visit(org.apache.jena.sparql.algebra.op.OpReduced op) - Specified by:
visitin interfaceorg.apache.jena.sparql.algebra.OpVisitor- Overrides:
visitin classorg.apache.jena.sparql.algebra.OpVisitorBase
-
markEssential
public void markEssential(org.apache.jena.sparql.algebra.Op op, Set<org.apache.jena.sparql.core.Var> vars) Descend into to op-tree and mark all non-required supplied variables as non-required- Parameters:
op-clearVars-
-
markEssential
public static void markEssential(Map<org.apache.jena.sparql.algebra.Op, VarUsage2> opToVarUsage, org.apache.jena.sparql.algebra.Op op, Set<org.apache.jena.sparql.core.Var> vars) Marks variables as essential If variables were created through assignment, the dependent variables are marked as essential as well.- Parameters:
op-vars-
-
allocate
-
visit
public void visit(org.apache.jena.sparql.algebra.op.OpProject op) - Specified by:
visitin interfaceorg.apache.jena.sparql.algebra.OpVisitor- Overrides:
visitin classorg.apache.jena.sparql.algebra.OpVisitorBase
-
visit
public void visit(org.apache.jena.sparql.algebra.op.OpQuadPattern op) - Specified by:
visitin interfaceorg.apache.jena.sparql.algebra.OpVisitor- Overrides:
visitin classorg.apache.jena.sparql.algebra.OpVisitorBase
-
analyze
-
analyze
public static Map<org.apache.jena.sparql.algebra.Op,VarUsage2> analyze(org.apache.jena.sparql.algebra.Op op, VarUsageAnalyzer2Visitor varUsageAnalyzer)
-