/* * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.intellij.psi; import com.intellij.psi.javadoc.*; @SuppressWarnings({"JavaDoc"}) public abstract class JavaElementVisitor extends PsiElementVisitor { public void visitAnonymousClass(PsiAnonymousClass aClass) { visitClass(aClass); } public void visitArrayAccessExpression(PsiArrayAccessExpression expression) { visitExpression(expression); } public void visitArrayInitializerExpression(PsiArrayInitializerExpression expression) { visitExpression(expression); } public void visitAssertStatement(PsiAssertStatement statement) { visitStatement(statement); } public void visitAssignmentExpression(PsiAssignmentExpression expression) { visitExpression(expression); } public void visitBinaryExpression(PsiBinaryExpression expression) { visitPolyadicExpression(expression); } public void visitBlockStatement(PsiBlockStatement statement) { visitStatement(statement); } public void visitBreakStatement(PsiBreakStatement statement) { visitStatement(statement); } public void visitClass(PsiClass aClass) { visitElement(aClass); } public void visitClassInitializer(PsiClassInitializer initializer) { visitElement(initializer); } public void visitClassObjectAccessExpression(PsiClassObjectAccessExpression expression) { visitExpression(expression); } public void visitCodeBlock(PsiCodeBlock block) { visitElement(block); } public void visitConditionalExpression(PsiConditionalExpression expression) { visitExpression(expression); } public void visitContinueStatement(PsiContinueStatement statement) { visitStatement(statement); } public void visitDeclarationStatement(PsiDeclarationStatement statement) { visitStatement(statement); } public void visitDocComment(PsiDocComment comment) { visitComment(comment); } public void visitDocTag(PsiDocTag tag) { visitElement(tag); } public void visitDocTagValue(PsiDocTagValue value) { visitElement(value); } public void visitDoWhileStatement(PsiDoWhileStatement statement) { visitStatement(statement); } public void visitEmptyStatement(PsiEmptyStatement statement) { visitStatement(statement); } public void visitExpression(PsiExpression expression) { visitElement(expression); } public void visitExpressionList(PsiExpressionList list) { visitElement(list); } public void visitExpressionListStatement(PsiExpressionListStatement statement) { visitStatement(statement); } public void visitExpressionStatement(PsiExpressionStatement statement) { visitStatement(statement); } public void visitField(PsiField field) { visitVariable(field); } public void visitForStatement(PsiForStatement statement) { visitStatement(statement); } public void visitForeachStatement(PsiForeachStatement statement) { visitStatement(statement); } public void visitIdentifier(PsiIdentifier identifier) { visitJavaToken(identifier); } public void visitIfStatement(PsiIfStatement statement) { visitStatement(statement); } public void visitImportList(PsiImportList list) { visitElement(list); } public void visitImportStatement(PsiImportStatement statement) { visitElement(statement); } public void visitImportStaticStatement(PsiImportStaticStatement statement) { visitElement(statement); } public void visitInlineDocTag(PsiInlineDocTag tag) { visitDocTag(tag); } public void visitInstanceOfExpression(PsiInstanceOfExpression expression) { visitExpression(expression); } public void visitJavaToken(PsiJavaToken token){ visitElement(token); } public void visitKeyword(PsiKeyword keyword) { visitJavaToken(keyword); } public void visitLabeledStatement(PsiLabeledStatement statement) { visitStatement(statement); } public void visitLiteralExpression(PsiLiteralExpression expression) { visitExpression(expression); } public void visitLocalVariable(PsiLocalVariable variable) { visitVariable(variable); } public void visitMethod(PsiMethod method) { visitElement(method); } public void visitMethodCallExpression(PsiMethodCallExpression expression) { visitCallExpression(expression); } public void visitCallExpression(PsiCallExpression callExpression) { visitExpression(callExpression); } public void visitModifierList(PsiModifierList list) { visitElement(list); } public void visitNewExpression(PsiNewExpression expression) { visitCallExpression(expression); } public void visitPackage(PsiPackage aPackage) { visitElement(aPackage); } public void visitPackageStatement(PsiPackageStatement statement) { visitElement(statement); } public void visitParameter(PsiParameter parameter) { visitVariable(parameter); } public void visitParameterList(PsiParameterList list) { visitElement(list); } public void visitParenthesizedExpression(PsiParenthesizedExpression expression) { visitExpression(expression); } public void visitPostfixExpression(PsiPostfixExpression expression) { visitExpression(expression); } public void visitPrefixExpression(PsiPrefixExpression expression) { visitExpression(expression); } public void visitReferenceElement(PsiJavaCodeReferenceElement reference) { visitElement(reference); } public void visitImportStaticReferenceElement(PsiImportStaticReferenceElement reference) { visitElement(reference); } /** * PsiReferenceExpression is PsiReferenceElement and PsiExpression at the same time. * If we'd call both visitReferenceElement and visitExpression in default implementation * of this method we can easily stuck with exponential algorithm if the derived visitor * extends visitElement() and accepts children there. * PsiRecursiveElement visitor works that around and implements this method accordingly. * All other visitor must decide themselves what implementation (visitReferenceElement() or visitExpression() or none or LOG.error()) * is appropriate for them. * @param expression */ public void visitReferenceExpression(PsiReferenceExpression expression) {} public void visitMethodReferenceExpression(PsiMethodReferenceExpression expression) { visitReferenceExpression(expression); } public void visitReferenceList(PsiReferenceList list) { visitElement(list); } public void visitReferenceParameterList(PsiReferenceParameterList list) { visitElement(list); } public void visitTypeParameterList(PsiTypeParameterList list) { visitElement(list); } public void visitReturnStatement(PsiReturnStatement statement) { visitStatement(statement); } public void visitStatement(PsiStatement statement) { visitElement(statement); } public void visitSuperExpression(PsiSuperExpression expression) { visitExpression(expression); } public void visitSwitchLabelStatement(PsiSwitchLabelStatement statement) { visitStatement(statement); } public void visitSwitchStatement(PsiSwitchStatement statement) { visitStatement(statement); } public void visitSynchronizedStatement(PsiSynchronizedStatement statement) { visitStatement(statement); } public void visitThisExpression(PsiThisExpression expression) { visitExpression(expression); } public void visitThrowStatement(PsiThrowStatement statement) { visitStatement(statement); } public void visitTryStatement(PsiTryStatement statement) { visitStatement(statement); } public void visitCatchSection(PsiCatchSection section) { visitElement(section); } public void visitResourceList(PsiResourceList resourceList) { visitElement(resourceList); } public void visitResourceVariable(PsiResourceVariable resourceVariable) { visitLocalVariable(resourceVariable); } public void visitTypeElement(PsiTypeElement type) { visitElement(type); } public void visitTypeCastExpression(PsiTypeCastExpression expression) { visitExpression(expression); } public void visitVariable(PsiVariable variable) { visitElement(variable); } public void visitWhileStatement(PsiWhileStatement statement) { visitStatement(statement); } public void visitJavaFile(PsiJavaFile file){ visitFile(file); } public void visitImplicitVariable(ImplicitVariable variable) { visitLocalVariable(variable); } public void visitDocToken(PsiDocToken token) { visitElement(token); } public void visitTypeParameter(PsiTypeParameter classParameter) { visitClass(classParameter); } public void visitAnnotation(PsiAnnotation annotation) { visitElement(annotation); } public void visitAnnotationParameterList(PsiAnnotationParameterList list) { visitElement(list); } public void visitAnnotationArrayInitializer(PsiArrayInitializerMemberValue initializer) { visitElement(initializer); } public void visitNameValuePair(PsiNameValuePair pair) { visitElement(pair); } public void visitAnnotationMethod(PsiAnnotationMethod method) { visitMethod(method); } public void visitEnumConstant(PsiEnumConstant enumConstant) { visitField(enumConstant); } public void visitEnumConstantInitializer(PsiEnumConstantInitializer enumConstantInitializer) { visitAnonymousClass(enumConstantInitializer); } public void visitCodeFragment(JavaCodeFragment codeFragment) { visitFile(codeFragment); } public void visitPolyadicExpression(PsiPolyadicExpression expression) { visitExpression(expression); } public void visitLambdaExpression(PsiLambdaExpression expression) { visitExpression(expression); } }