/** 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() ; } }
/** 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() ; } }
/** 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() ; } }
/** 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 ; }
/** 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 ; }