public interface  org.finos.legend.engine.protocol.sql.metamodel.NodeVisitor extends java.lang.Object
{
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.AliasedRelation);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.AllColumns);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.ArithmeticExpression);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.ArrayLiteral);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.BetweenPredicate);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.BooleanLiteral);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.Cast);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.ColumnType);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.ComparisonExpression);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.CurrentTime);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.DoubleLiteral);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.Expression);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.Extract);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.FrameBound);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.FunctionCall);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.Group);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.InListExpression);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.InPredicate);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.IntegerLiteral);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.IntervalLiteral);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.IsNotNullPredicate);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.IsNullPredicate);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.Join);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.LikePredicate);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.Literal);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.LogicalBinaryExpression);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.LongLiteral);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.NamedArgumentExpression);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.NegativeExpression);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.NotExpression);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.NullLiteral);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.ParameterPlaceholderExpression);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.PositionalParameterExpression);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.QualifiedNameReference);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.Query);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.QueryBody);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.QuerySpecification);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.Relation);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.SearchedCaseExpression);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.Select);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.SelectItem);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.SetOperation);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.SimpleCaseExpression);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.SingleColumn);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.SortItem);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.Statement);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.StringLiteral);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.SubqueryExpression);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.Table);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.TableFunction);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.TableSubquery);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.Trim);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.Union);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.WhenClause);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.Window);
public abstract java.lang.Object visit(org.finos.legend.engine.protocol.sql.metamodel.WindowFrame);
}