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