internal override TOutput Accept <TInput, TOutput>(CellTreeVisitor <TInput, TOutput> visitor, TInput param) { switch (OpType) { case CellTreeOpType.IJ: return(visitor.VisitInnerJoin(this, param)); case CellTreeOpType.LOJ: return(visitor.VisitLeftOuterJoin(this, param)); case CellTreeOpType.Union: return(visitor.VisitUnion(this, param)); case CellTreeOpType.FOJ: return(visitor.VisitFullOuterJoin(this, param)); case CellTreeOpType.LASJ: return(visitor.VisitLeftAntiSemiJoin(this, param)); default: Debug.Fail("Unexpected optype: " + OpType); // To satsfy the compiler return(visitor.VisitInnerJoin(this, param)); } }
internal override TOutput Accept <TInput, TOutput>(CellTreeVisitor <TInput, TOutput> visitor, TInput param) { return(visitor.VisitLeaf(this, param)); }
// Standard accept method for visitor pattern. TOutput is the return // type for visitor methods. internal abstract TOutput Accept <TInput, TOutput>(CellTreeVisitor <TInput, TOutput> visitor, TInput param);