001    /*
002    // $Id: //open/mondrian/src/main/mondrian/mdx/MdxVisitor.java#1 $
003    // This software is subject to the terms of the Common Public License
004    // Agreement, available at the following URL:
005    // http://www.opensource.org/licenses/cpl.html.
006    // Copyright (C) 2006-2006 Julian Hyde
007    // All Rights Reserved.
008    // You must accept the terms of that agreement to use this software.
009    */
010    package mondrian.mdx;
011    
012    import mondrian.olap.*;
013    
014    /**
015     * Interface for a visitor to an MDX parse tree.
016     *
017     * @author jhyde
018     * @version $Id: //open/mondrian/src/main/mondrian/mdx/MdxVisitor.java#1 $
019     * @since Jul 21, 2006
020     */
021    public interface MdxVisitor {
022        /**
023         * Visits a Query.
024         *
025         * @see Query#accept(MdxVisitor)
026         */
027        Object visit(Query query);
028    
029        /**
030         * Visits a QueryAxis.
031         *
032         * @see QueryAxis#accept(MdxVisitor)
033         */
034        Object visit(QueryAxis queryAxis);
035    
036        /**
037         * Visits a Formula.
038         *
039         * @see Formula#accept(MdxVisitor)
040         */
041        Object visit(Formula formula);
042    
043        /**
044         * Visits an UnresolvedFunCall.
045         *
046         * @see UnresolvedFunCall#accept(MdxVisitor)
047         */
048        Object visit(UnresolvedFunCall call);
049    
050        /**
051         * Visits a ResolvedFunCall.
052         *
053         * @see ResolvedFunCall#accept(MdxVisitor)
054         */
055        Object visit(ResolvedFunCall call);
056    
057        /**
058         * Visits an Id.
059         *
060         * @see Id#accept(MdxVisitor)
061         */
062        Object visit(Id id);
063    
064        /**
065         * Visits a Parameter.
066         *
067         * @see ParameterExpr#accept(MdxVisitor)
068         */
069        Object visit(ParameterExpr parameterExpr);
070    
071        /**
072         * Visits a DimensionExpr.
073         *
074         * @see DimensionExpr#accept(MdxVisitor)
075         */
076        Object visit(DimensionExpr dimensionExpr);
077    
078        /**
079         * Visits a HierarchyExpr.
080         *
081         * @see HierarchyExpr#accept(MdxVisitor)
082         */
083        Object visit(HierarchyExpr hierarchyExpr);
084    
085        /**
086         * Visits a LevelExpr.
087         *
088         * @see LevelExpr#accept(MdxVisitor)
089         */
090        Object visit(LevelExpr levelExpr);
091    
092        /**
093         * Visits a MemberExpr.
094         *
095         * @see MemberExpr#accept(MdxVisitor)
096         */
097        Object visit(MemberExpr memberExpr);
098    
099        /**
100         * Visits a NamedSetExpr.
101         *
102         * @see NamedSetExpr#accept(MdxVisitor)
103         */
104        Object visit(NamedSetExpr namedSetExpr);
105    
106        /**
107         * Visits a Literal.
108         *
109         * @see Literal#accept(MdxVisitor)
110         */
111        Object visit(Literal literal);
112    }
113    
114    // End MdxVisitor.java