/* * SonarQube Java * Copyright (C) 2012-2016 SonarSource SA * mailto:contact AT sonarsource DOT com * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package org.sonar.plugins.java.api.tree; import com.google.common.annotations.Beta; import org.sonar.java.model.expression.TypeArgumentListTreeImpl; /** * @see BaseTreeVisitor */ @Beta public interface TreeVisitor { void visitCompilationUnit(CompilationUnitTree tree); void visitImport(ImportTree tree); void visitClass(ClassTree tree); void visitMethod(MethodTree tree); void visitBlock(BlockTree tree); void visitEmptyStatement(EmptyStatementTree tree); void visitLabeledStatement(LabeledStatementTree tree); void visitExpressionStatement(ExpressionStatementTree tree); void visitIfStatement(IfStatementTree tree); void visitAssertStatement(AssertStatementTree tree); void visitSwitchStatement(SwitchStatementTree tree); void visitCaseGroup(CaseGroupTree tree); void visitCaseLabel(CaseLabelTree tree); void visitWhileStatement(WhileStatementTree tree); void visitDoWhileStatement(DoWhileStatementTree tree); void visitForStatement(ForStatementTree tree); void visitForEachStatement(ForEachStatement tree); void visitBreakStatement(BreakStatementTree tree); void visitContinueStatement(ContinueStatementTree tree); void visitReturnStatement(ReturnStatementTree tree); void visitThrowStatement(ThrowStatementTree tree); void visitSynchronizedStatement(SynchronizedStatementTree tree); void visitTryStatement(TryStatementTree tree); void visitCatch(CatchTree tree); void visitUnaryExpression(UnaryExpressionTree tree); void visitBinaryExpression(BinaryExpressionTree tree); void visitConditionalExpression(ConditionalExpressionTree tree); void visitArrayAccessExpression(ArrayAccessExpressionTree tree); void visitMemberSelectExpression(MemberSelectExpressionTree tree); void visitNewClass(NewClassTree tree); void visitNewArray(NewArrayTree tree); void visitMethodInvocation(MethodInvocationTree tree); void visitTypeCast(TypeCastTree tree); void visitInstanceOf(InstanceOfTree tree); void visitParenthesized(ParenthesizedTree tree); void visitAssignmentExpression(AssignmentExpressionTree tree); void visitLiteral(LiteralTree tree); void visitIdentifier(IdentifierTree tree); void visitVariable(VariableTree tree); void visitEnumConstant(EnumConstantTree tree); void visitPrimitiveType(PrimitiveTypeTree tree); void visitArrayType(ArrayTypeTree tree); void visitParameterizedType(ParameterizedTypeTree tree); void visitWildcard(WildcardTree tree); void visitUnionType(UnionTypeTree tree); void visitModifier(ModifiersTree modifiersTree); void visitAnnotation(AnnotationTree annotationTree); void visitLambdaExpression(LambdaExpressionTree lambdaExpressionTree); void visitTypeParameter(TypeParameterTree typeParameter); void visitTypeArguments(TypeArgumentListTreeImpl trees); void visitTypeParameters(TypeParameters trees); void visitOther(Tree tree); void visitMethodReference(MethodReferenceTree methodReferenceTree); void visitPackage(PackageDeclarationTree tree); void visitArrayDimension(ArrayDimensionTree tree); }