public OpVariableVistor(Op query, boolean duplicates) { this.query = query; this.duplicates = duplicates; OpWalker.walk(query, this); }
public static void walk(Op op, OpVisitor visitor, OpVisitor beforeVisitor, OpVisitor afterVisitor) { walk(new WalkerVisitor(visitor, beforeVisitor, afterVisitor), op, visitor, beforeVisitor, afterVisitor) ; }
public static void allVars(Op op, Set<Var> acc) { OpWalker.walk(op, new OpVarsQuery(acc)) ; }
public static void walk(Op op, OpVisitor visitor, OpVisitor beforeVisitor, OpVisitor afterVisitor) { walk(new WalkerVisitor(visitor, beforeVisitor, afterVisitor), op) ; }
/** The primitive operation to apply a transformation to an Op */ protected Op applyTransformation(ApplyTransformVisitor transformApply, Op op, OpVisitor beforeVisitor, OpVisitor afterVisitor) { OpWalker.walk(op, transformApply, beforeVisitor, afterVisitor) ; Op r = transformApply.result() ; return r ; }
public static void walk(Op op, OpVisitor visitor) { walk(new WalkerVisitor(visitor, null, null), op, visitor) ; }
/** The primitive operation to apply a transformation to an Op */ protected Op applyTransformation(ApplyTransformVisitor transformApply, Op op, OpVisitor beforeVisitor, OpVisitor afterVisitor) { OpWalker.walk(op, transformApply, beforeVisitor, afterVisitor) ; Op r = transformApply.result() ; return r ; }
public static void mentionedVars(Op op, Set<Var> acc) { OpVarsMentioned visitor = new OpVarsMentioned(acc) ; OpWalker.walk(op, visitor) ; }
public static void walk(Op op, OpVisitor visitor) { walk(new WalkerVisitor(visitor, null, null), op) ; }
public static void patternVars(Op op, Set<Var> acc) { //OpWalker.walk(op, new OpVarsPattern(acc)) ; OpVisitor visitor = new OpVarsPattern(acc) ; OpWalker.walk(new WalkerVisitorSkipMinus(visitor), op, visitor) ; }
public static void visibleVars(Op op, Set<Var> acc) { OpVarsPattern visitor = new OpVarsPattern(acc, true) ; OpWalker.walk(new WalkerVisitorVisible(visitor, acc), op) ; }
public static void fixedVars(Op op, Set<Var> acc) { OpVarsPattern visitor = new OpVarsPattern(acc, true) ; OpWalker.walk(new WalkerVisitorFixed(visitor, acc), op) ; }
static public PrefixMapping used(Op op, PrefixMapping pmap) { PrefixMapping pmap2 = new PrefixMappingImpl() ; PrefixFinder finder = new PrefixFinder(pmap2, pmap.getNsPrefixMap()) ; OpWalker.walk(op, finder) ; return pmap2 ; }
static public PrefixMapping used(Op op, PrefixMapping pmap) { PrefixMapping pmap2 = new PrefixMappingImpl() ; PrefixFinder finder = new PrefixFinder(pmap2, pmap.getNsPrefixMap()) ; OpWalker.walk(op, finder) ; return pmap2 ; }
/** Transform an algebra expression except skip (leave alone) any OpService nodes */ public static Op transformSkipService(Transform transform, ExprTransform exprTransform, Op op, OpVisitor beforeVisitor, OpVisitor afterVisitor) { // Skip SERVICE if ( true ) { // Simplest way but still walks the OpService subtree (and throws away the transformation). Transform walker = new TransformSkipService(transform) ; return Transformer.transform(walker, exprTransform, op, beforeVisitor, afterVisitor) ; } else { ApplyTransformVisitorServiceAsLeaf v = new ApplyTransformVisitorServiceAsLeaf(transform, exprTransform) ; WalkerVisitorSkipService walker = new WalkerVisitorSkipService(v, beforeVisitor, afterVisitor) ; OpWalker.walk(walker, op) ; return v.result() ; } }
/** Transform an algebra expression except skip (leave alone) any OpService nodes */ public static Op transformSkipService(Transform transform, Op op, OpVisitor beforeVisitor, OpVisitor afterVisitor) { // Skip SERVICE if ( true ) { // Simplest way but still walks the OpService subtree (and throws away the transformation). transform = new TransformSkipService(transform) ; return Transformer.transform(transform, op, beforeVisitor, afterVisitor) ; } else { // Don't transform OpService and don't walk the sub-op ApplyTransformVisitorServiceAsLeaf v = new ApplyTransformVisitorServiceAsLeaf(transform) ; WalkerVisitorSkipService walker = new WalkerVisitorSkipService(v, beforeVisitor, afterVisitor) ; OpWalker.walk(walker, op, v) ; return v.result() ; } }
OpWalker.walk(query, collector);
/** Transform an algebra expression except skip (leave alone) any OpService nodes */ public static Op transformSkipService(Transform transform, Op op, OpVisitor beforeVisitor, OpVisitor afterVisitor) { // Skip SERVICE if ( true ) { // Simplest way but still walks the OpService subtree (and throws away the transformation). Transform walker = new TransformSkipService(transform) ; return Transformer.transform(walker, op, beforeVisitor, afterVisitor) ; } else { // Don't transform OpService and don't walk the sub-op ExprTransform exprTransform = new ExprTransformApplyTransform(transform, beforeVisitor, afterVisitor) ; ApplyTransformVisitorServiceAsLeaf v = new ApplyTransformVisitorServiceAsLeaf(transform, exprTransform) ; WalkerVisitorSkipService walker = new WalkerVisitorSkipService(v, beforeVisitor, afterVisitor) ; OpWalker.walk(walker, op) ; return v.result() ; } }
@SuppressWarnings("unchecked") public static Tuple<Set<Var>> mentionedVarsByPosition(Op... ops) { Set<Var> graphAcc = collector() ; Set<Var> subjAcc = collector() ; Set<Var> predAcc = collector() ; Set<Var> objAcc = collector() ; Set<Var> unknownAcc = collector() ; OpVarsPatternWithPositions visitor = new OpVarsPatternWithPositions(graphAcc, subjAcc, predAcc, objAcc, unknownAcc, false); for (Op op : ops) OpWalker.walk(op, visitor); return Tuple.createTuple(graphAcc, subjAcc, predAcc, objAcc, unknownAcc); }
@SuppressWarnings("unchecked") public static Tuple<Set<Var>> mentionedVarsByPosition(Op op) { Set<Var> graphAcc = collector() ; Set<Var> subjAcc = collector() ; Set<Var> predAcc = collector() ; Set<Var> objAcc = collector() ; Set<Var> unknownAcc = collector() ; OpVarsPatternWithPositions visitor = new OpVarsPatternWithPositions(graphAcc, subjAcc, predAcc, objAcc, unknownAcc, false); OpWalker.walk(op, visitor); return Tuple.createTuple(graphAcc, subjAcc, predAcc, objAcc, unknownAcc); }