001/*
002 * Copyright (c) 2006-2011 Nuxeo SA (http://nuxeo.com/) and others.
003 *
004 * All rights reserved. This program and the accompanying materials
005 * are made available under the terms of the Eclipse Public License v1.0
006 * which accompanies this distribution, and is available at
007 * http://www.eclipse.org/legal/epl-v10.html
008 *
009 * Contributors:
010 *     Bogdan Stefanescu
011 *     Florent Guillaume
012 */
013
014package org.nuxeo.ecm.core.query.sql.model;
015
016import java.io.Serializable;
017
018/**
019 * @author Bogdan Stefanescu
020 * @author Florent Guillaume
021 */
022public interface IVisitor extends Serializable {
023
024    void visitLiteral(Literal node);
025
026    void visitLiteralList(LiteralList node);
027
028    void visitDateLiteral(DateLiteral node);
029
030    void visitStringLiteral(StringLiteral node);
031
032    void visitDoubleLiteral(DoubleLiteral node);
033
034    void visitIntegerLiteral(IntegerLiteral node);
035
036    void visitBooleanLiteral(BooleanLiteral node);
037
038    void visitOperandList(OperandList node);
039
040    void visitOperator(Operator node);
041
042    void visitSelectClause(SelectClause node);
043
044    void visitFromClause(FromClause node);
045
046    void visitWhereClause(WhereClause node);
047
048    void visitOrderByClause(OrderByClause node);
049
050    void visitOrderByList(OrderByList node);
051
052    void visitOrderByExpr(OrderByExpr node);
053
054    void visitGroupByClause(GroupByClause node);
055
056    void visitHavingClause(HavingClause node);
057
058    void visitExpression(Expression node);
059
060    void visitMultiExpression(MultiExpression node);
061
062    void visitReference(Reference node);
063
064    void visitReferenceList(ReferenceList node);
065
066    void visitQuery(SQLQuery node);
067
068    void visitFunction(Function node);
069
070}