diff options
Diffstat (limited to 'src/proguard/classfile/util/SimplifiedVisitor.java')
-rw-r--r-- | src/proguard/classfile/util/SimplifiedVisitor.java | 810 |
1 files changed, 810 insertions, 0 deletions
diff --git a/src/proguard/classfile/util/SimplifiedVisitor.java b/src/proguard/classfile/util/SimplifiedVisitor.java new file mode 100644 index 0000000..87b7fe4 --- /dev/null +++ b/src/proguard/classfile/util/SimplifiedVisitor.java @@ -0,0 +1,810 @@ +/* + * ProGuard -- shrinking, optimization, obfuscation, and preverification + * of Java bytecode. + * + * Copyright (c) 2002-2009 Eric Lafortune (eric@graphics.cornell.edu) + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 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 General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +package proguard.classfile.util; + +import proguard.classfile.*; +import proguard.classfile.attribute.*; +import proguard.classfile.attribute.annotation.*; +import proguard.classfile.attribute.preverification.*; +import proguard.classfile.constant.*; +import proguard.classfile.instruction.*; + +/** + * This abstract utility class allows to implement various visitor interfaces + * with simplified methods. The provided methods delegate to other versions + * with fewer arguments or more general arguments. + * + * @author Eric Lafortune + * @noinspection AbstractClassWithoutAbstractMethods + */ +public abstract class SimplifiedVisitor +{ + // Simplifications for ClassVisitor. + + /** + * Visits any type of class member of the given class. + */ + public void visitAnyClass(Clazz Clazz) + { + throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); + } + + + public void visitProgramClass(ProgramClass programClass) + { + visitAnyClass(programClass); + } + + + public void visitLibraryClass(LibraryClass libraryClass) + { + visitAnyClass(libraryClass); + } + + + // Simplifications for MemberVisitor. + + /** + * Visits any type of class member of the given class. + */ + public void visitAnyMember(Clazz clazz, Member member) + { + throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); + } + + + /** + * Visits any type of class member of the given program class. + */ + public void visitProgramMember(ProgramClass programClass, ProgramMember programMember) + { + visitAnyMember(programClass, programMember); + } + + + public void visitProgramField(ProgramClass programClass, ProgramField programField) + { + visitProgramMember(programClass, programField); + } + + + public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) + { + visitProgramMember(programClass, programMethod); + } + + + /** + * Visits any type of class member of the given library class. + */ + public void visitLibraryMember(LibraryClass libraryClass, LibraryMember libraryMember) + { + visitAnyMember(libraryClass, libraryMember); + } + + + public void visitLibraryField(LibraryClass libraryClass, LibraryField libraryField) + { + visitLibraryMember(libraryClass, libraryField); + } + + + public void visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod) + { + visitLibraryMember(libraryClass, libraryMethod); + } + + + // Simplifications for ConstantVisitor. + + public void visitAnyConstant(Clazz clazz, Constant constant) + { + throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); + } + + + public void visitIntegerConstant(Clazz clazz, IntegerConstant integerConstant) + { + visitAnyConstant(clazz, integerConstant); + } + + + public void visitLongConstant(Clazz clazz, LongConstant longConstant) + { + visitAnyConstant(clazz, longConstant); + } + + + public void visitFloatConstant(Clazz clazz, FloatConstant floatConstant) + { + visitAnyConstant(clazz, floatConstant); + } + + + public void visitDoubleConstant(Clazz clazz, DoubleConstant doubleConstant) + { + visitAnyConstant(clazz, doubleConstant); + } + + + public void visitStringConstant(Clazz clazz, StringConstant stringConstant) + { + visitAnyConstant(clazz, stringConstant); + } + + + public void visitUtf8Constant(Clazz clazz, Utf8Constant utf8Constant) + { + visitAnyConstant(clazz, utf8Constant); + } + + + /** + * Visits any type of RefConstant of the given class. + */ + public void visitAnyRefConstant(Clazz clazz, RefConstant refConstant) + { + visitAnyConstant(clazz, refConstant); + } + + + public void visitFieldrefConstant(Clazz clazz, FieldrefConstant fieldrefConstant) + { + visitAnyRefConstant(clazz, fieldrefConstant); + } + + + /** + * Visits any type of method RefConstant of the given class. + */ + public void visitAnyMethodrefConstant(Clazz clazz, RefConstant refConstant) + { + visitAnyRefConstant(clazz, refConstant); + } + + + public void visitInterfaceMethodrefConstant(Clazz clazz, InterfaceMethodrefConstant interfaceMethodrefConstant) + { + visitAnyMethodrefConstant(clazz, interfaceMethodrefConstant); + } + + + public void visitMethodrefConstant(Clazz clazz, MethodrefConstant methodrefConstant) + { + visitAnyMethodrefConstant(clazz, methodrefConstant); + } + + + public void visitClassConstant(Clazz clazz, ClassConstant classConstant) + { + visitAnyConstant(clazz, classConstant); + } + + + public void visitNameAndTypeConstant(Clazz clazz, NameAndTypeConstant nameAndTypeConstant) + { + visitAnyConstant(clazz, nameAndTypeConstant); + } + + + // Simplifications for AttributeVisitor. + + /** + * Visit any type of attribute. + */ + public void visitAnyAttribute(Clazz clazz, Attribute attribute) + { + throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); + } + + + public void visitUnknownAttribute(Clazz clazz, UnknownAttribute unknownAttribute) + { + visitAnyAttribute(clazz, unknownAttribute); + } + + + public void visitSourceFileAttribute(Clazz clazz, SourceFileAttribute sourceFileAttribute) + { + visitAnyAttribute(clazz, sourceFileAttribute); + } + + + public void visitSourceDirAttribute(Clazz clazz, SourceDirAttribute sourceDirAttribute) + { + visitAnyAttribute(clazz, sourceDirAttribute); + } + + + public void visitInnerClassesAttribute(Clazz clazz, InnerClassesAttribute innerClassesAttribute) + { + visitAnyAttribute(clazz, innerClassesAttribute); + } + + + public void visitEnclosingMethodAttribute(Clazz clazz, EnclosingMethodAttribute enclosingMethodAttribute) + { + visitAnyAttribute(clazz, enclosingMethodAttribute); + } + + + public void visitDeprecatedAttribute(Clazz clazz, DeprecatedAttribute deprecatedAttribute) + { + visitAnyAttribute(clazz, deprecatedAttribute); + } + + + /** + * Visits the given DeprecatedAttribute of any type of class member. + */ + public void visitDeprecatedAttribute(Clazz clazz, Member member, DeprecatedAttribute deprecatedAttribute) + { + visitDeprecatedAttribute(clazz, deprecatedAttribute); + } + + + public void visitDeprecatedAttribute(Clazz clazz, Field field, DeprecatedAttribute deprecatedAttribute) + { + visitDeprecatedAttribute(clazz, (Member)field, deprecatedAttribute); + } + + + public void visitDeprecatedAttribute(Clazz clazz, Method method, DeprecatedAttribute deprecatedAttribute) + { + visitDeprecatedAttribute(clazz, (Member)method, deprecatedAttribute); + } + + + public void visitSyntheticAttribute(Clazz clazz, SyntheticAttribute syntheticAttribute) + { + visitAnyAttribute(clazz, syntheticAttribute); + } + + + /** + * Visits the given SyntheticAttribute of any type of class member. + */ + public void visitSyntheticAttribute(Clazz clazz, Member member, SyntheticAttribute syntheticAttribute) + { + visitSyntheticAttribute(clazz, syntheticAttribute); + } + + + public void visitSyntheticAttribute(Clazz clazz, Field field, SyntheticAttribute syntheticAttribute) + { + visitSyntheticAttribute(clazz, (Member)field, syntheticAttribute); + } + + + public void visitSyntheticAttribute(Clazz clazz, Method method, SyntheticAttribute syntheticAttribute) + { + visitSyntheticAttribute(clazz, (Member)method, syntheticAttribute); + } + + + public void visitSignatureAttribute(Clazz clazz, SignatureAttribute signatureAttribute) + { + visitAnyAttribute(clazz, signatureAttribute); + } + + + /** + * Visits the given SignatureAttribute of any type of class member. + */ + public void visitSignatureAttribute(Clazz clazz, Member member, SignatureAttribute signatureAttribute) + { + visitSignatureAttribute(clazz, signatureAttribute); + } + + + public void visitSignatureAttribute(Clazz clazz, Field field, SignatureAttribute signatureAttribute) + { + visitSignatureAttribute(clazz, (Member)field, signatureAttribute); + } + + + public void visitSignatureAttribute(Clazz clazz, Method method, SignatureAttribute signatureAttribute) + { + visitSignatureAttribute(clazz, (Member)method, signatureAttribute); + } + + + public void visitConstantValueAttribute(Clazz clazz, Field field, ConstantValueAttribute constantValueAttribute) + { + visitAnyAttribute(clazz, constantValueAttribute); + } + + + public void visitExceptionsAttribute(Clazz clazz, Method method, ExceptionsAttribute exceptionsAttribute) + { + visitAnyAttribute(clazz, exceptionsAttribute); + } + + + public void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute) + { + visitAnyAttribute(clazz, codeAttribute); + } + + + public void visitStackMapAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapAttribute stackMapAttribute) + { + visitAnyAttribute(clazz, stackMapAttribute); + } + + + public void visitStackMapTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapTableAttribute stackMapTableAttribute) + { + visitAnyAttribute(clazz, stackMapTableAttribute); + } + + + public void visitLineNumberTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LineNumberTableAttribute lineNumberTableAttribute) + { + visitAnyAttribute(clazz, lineNumberTableAttribute); + } + + + public void visitLocalVariableTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTableAttribute localVariableTableAttribute) + { + visitAnyAttribute(clazz, localVariableTableAttribute); + } + + + public void visitLocalVariableTypeTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeTableAttribute localVariableTypeTableAttribute) + { + visitAnyAttribute(clazz, localVariableTypeTableAttribute); + } + + + /** + * Visits any type of AnnotationsAttribute of a class. + */ + public void visitAnyAnnotationsAttribute(Clazz clazz, AnnotationsAttribute annotationsAttribute) + { + visitAnyAttribute(clazz, annotationsAttribute); + } + + + public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute) + { + visitAnyAnnotationsAttribute(clazz, runtimeVisibleAnnotationsAttribute); + } + + + /** + * Visits the given RuntimeVisibleAnnotationsAttribute of any type of class member. + */ + public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Member member, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute) + { + visitRuntimeVisibleAnnotationsAttribute(clazz, runtimeVisibleAnnotationsAttribute); + } + + + public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute) + { + visitRuntimeVisibleAnnotationsAttribute(clazz, (Member)field, runtimeVisibleAnnotationsAttribute); + } + + + public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute) + { + visitRuntimeVisibleAnnotationsAttribute(clazz, (Member)method, runtimeVisibleAnnotationsAttribute); + } + + + public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute) + { + visitAnyAnnotationsAttribute(clazz, runtimeInvisibleAnnotationsAttribute); + } + + + /** + * Visits the given RuntimeInvisibleAnnotationsAttribute of any type of class member. + */ + public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Member member, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute) + { + visitRuntimeInvisibleAnnotationsAttribute(clazz, runtimeInvisibleAnnotationsAttribute); + } + + + public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute) + { + visitRuntimeInvisibleAnnotationsAttribute(clazz, (Member)field, runtimeInvisibleAnnotationsAttribute); + } + + + public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute) + { + visitRuntimeInvisibleAnnotationsAttribute(clazz, (Member)method, runtimeInvisibleAnnotationsAttribute); + } + + + /** + * Visits any type of ParameterAnnotationsAttribute. + */ + public void visitAnyParameterAnnotationsAttribute(Clazz clazz, Method method, ParameterAnnotationsAttribute parameterAnnotationsAttribute) + { + visitAnyAttribute(clazz, parameterAnnotationsAttribute); + } + + + public void visitRuntimeVisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleParameterAnnotationsAttribute runtimeVisibleParameterAnnotationsAttribute) + { + visitAnyParameterAnnotationsAttribute(clazz, method, runtimeVisibleParameterAnnotationsAttribute); + } + + + public void visitRuntimeInvisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleParameterAnnotationsAttribute runtimeInvisibleParameterAnnotationsAttribute) + { + visitAnyParameterAnnotationsAttribute(clazz, method, runtimeInvisibleParameterAnnotationsAttribute); + } + + + public void visitAnnotationDefaultAttribute(Clazz clazz, Method method, AnnotationDefaultAttribute annotationDefaultAttribute) + { + visitAnyAttribute(clazz, annotationDefaultAttribute); + } + + + // Simplifications for InstructionVisitor. + + /** + * Visits any type of Instruction. + */ + public void visitAnyInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, Instruction instruction) + { + throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); + } + + + public void visitSimpleInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SimpleInstruction simpleInstruction) + { + visitAnyInstruction(clazz, method, codeAttribute, offset, simpleInstruction); + } + + + public void visitVariableInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, VariableInstruction variableInstruction) + { + visitAnyInstruction(clazz, method, codeAttribute, offset, variableInstruction); + } + + + public void visitConstantInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ConstantInstruction constantInstruction) + { + visitAnyInstruction(clazz, method, codeAttribute, offset, constantInstruction); + } + + + public void visitBranchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, BranchInstruction branchInstruction) + { + visitAnyInstruction(clazz, method, codeAttribute, offset, branchInstruction); + } + + + /** + * Visits either type of SwitchInstruction. + */ + public void visitAnySwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SwitchInstruction switchInstruction) + { + visitAnyInstruction(clazz, method, codeAttribute, offset, switchInstruction); + } + + + public void visitTableSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, TableSwitchInstruction tableSwitchInstruction) + { + visitAnySwitchInstruction(clazz, method, codeAttribute, offset, tableSwitchInstruction); + } + + + public void visitLookUpSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, LookUpSwitchInstruction lookUpSwitchInstruction) + { + visitAnySwitchInstruction(clazz, method, codeAttribute, offset, lookUpSwitchInstruction); + } + + + // Simplifications for StackMapFrameVisitor. + + /** + * Visits any type of VerificationType. + */ + public void visitAnyStackMapFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, StackMapFrame stackMapFrame) + { + throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); + } + + + public void visitSameZeroFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SameZeroFrame sameZeroFrame) + { + visitAnyStackMapFrame(clazz, method, codeAttribute, offset, sameZeroFrame); + } + + + public void visitSameOneFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SameOneFrame sameOneFrame) + { + visitAnyStackMapFrame(clazz, method, codeAttribute, offset, sameOneFrame); + } + + + public void visitLessZeroFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, LessZeroFrame lessZeroFrame) + { + visitAnyStackMapFrame(clazz, method, codeAttribute, offset, lessZeroFrame); + } + + + public void visitMoreZeroFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, MoreZeroFrame moreZeroFrame) + { + visitAnyStackMapFrame(clazz, method, codeAttribute, offset, moreZeroFrame); + } + + + public void visitFullFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, FullFrame fullFrame) + { + visitAnyStackMapFrame(clazz, method, codeAttribute, offset, fullFrame); + } + + + // Simplifications for VerificationTypeVisitor. + + /** + * Visits any type of VerificationType. + */ + public void visitAnyVerificationType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, VerificationType verificationType) + { + throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); + } + + + public void visitIntegerType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, IntegerType integerType) + { + visitAnyVerificationType(clazz, method, codeAttribute, offset, integerType); + } + + + public void visitFloatType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, FloatType floatType) + { + visitAnyVerificationType(clazz, method, codeAttribute, offset, floatType); + } + + + public void visitLongType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, LongType longType) + { + visitAnyVerificationType(clazz, method, codeAttribute, offset, longType); + } + + + public void visitDoubleType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, DoubleType doubleType) + { + visitAnyVerificationType(clazz, method, codeAttribute, offset, doubleType); + } + + + public void visitTopType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, TopType topType) + { + visitAnyVerificationType(clazz, method, codeAttribute, offset, topType); + } + + + public void visitObjectType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ObjectType objectType) + { + visitAnyVerificationType(clazz, method, codeAttribute, offset, objectType); + } + + + public void visitNullType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, NullType nullType) + { + visitAnyVerificationType(clazz, method, codeAttribute, offset, nullType); + } + + + public void visitUninitializedType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, UninitializedType uninitializedType) + { + visitAnyVerificationType(clazz, method, codeAttribute, offset, uninitializedType); + } + + + public void visitUninitializedThisType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, UninitializedThisType uninitializedThisType) + { + visitAnyVerificationType(clazz, method, codeAttribute, offset, uninitializedThisType); + } + + + public void visitStackIntegerType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, IntegerType integerType) + { + visitIntegerType(clazz, method, codeAttribute, offset, integerType); + } + + + public void visitStackFloatType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, FloatType floatType) + { + visitFloatType(clazz, method, codeAttribute, offset, floatType); + } + + + public void visitStackLongType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, LongType longType) + { + visitLongType(clazz, method, codeAttribute, offset, longType); + } + + + public void visitStackDoubleType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, DoubleType doubleType) + { + visitDoubleType(clazz, method, codeAttribute, offset, doubleType); + } + + + public void visitStackTopType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, TopType topType) + { + visitTopType(clazz, method, codeAttribute, offset, topType); + } + + + public void visitStackObjectType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, ObjectType objectType) + { + visitObjectType(clazz, method, codeAttribute, offset, objectType); + } + + + public void visitStackNullType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, NullType nullType) + { + visitNullType(clazz, method, codeAttribute, offset, nullType); + } + + + public void visitStackUninitializedType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, UninitializedType uninitializedType) + { + visitUninitializedType(clazz, method, codeAttribute, offset, uninitializedType); + } + + + public void visitStackUninitializedThisType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, UninitializedThisType uninitializedThisType) + { + visitUninitializedThisType(clazz, method, codeAttribute, offset, uninitializedThisType); + } + + + + public void visitVariablesIntegerType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, IntegerType integerType) + { + visitIntegerType(clazz, method, codeAttribute, offset, integerType); + } + + + public void visitVariablesFloatType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, FloatType floatType) + { + visitFloatType(clazz, method, codeAttribute, offset, floatType); + } + + + public void visitVariablesLongType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, LongType longType) + { + visitLongType(clazz, method, codeAttribute, offset, longType); + } + + + public void visitVariablesDoubleType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, DoubleType doubleType) + { + visitDoubleType(clazz, method, codeAttribute, offset, doubleType); + } + + + public void visitVariablesTopType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, TopType topType) + { + visitTopType(clazz, method, codeAttribute, offset, topType); + } + + + public void visitVariablesObjectType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, ObjectType objectType) + { + visitObjectType(clazz, method, codeAttribute, offset, objectType); + } + + + public void visitVariablesNullType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, NullType nullType) + { + visitNullType(clazz, method, codeAttribute, offset, nullType); + } + + + public void visitVariablesUninitializedType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, UninitializedType uninitializedType) + { + visitUninitializedType(clazz, method, codeAttribute, offset, uninitializedType); + } + + + public void visitVariablesUninitializedThisType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, UninitializedThisType uninitializedThisType) + { + visitUninitializedThisType(clazz, method, codeAttribute, offset, uninitializedThisType); + } + + + // Simplifications for AnnotationVisitor. + + public void visitAnnotation(Clazz clazz, Annotation annotation) + { + throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); + } + + + /** + * Visits the given Annotation of any type of class member. + */ + public void visitAnnotation(Clazz clazz, Member member, Annotation annotation) + { + visitAnnotation(clazz, annotation); + } + + + public void visitAnnotation(Clazz clazz, Field field, Annotation annotation) + { + visitAnnotation(clazz, (Member)field, annotation); + } + + + public void visitAnnotation(Clazz clazz, Method method, Annotation annotation) + { + visitAnnotation(clazz, (Member)method, annotation); + } + + + public void visitAnnotation(Clazz clazz, Method method, int parameterIndex, Annotation annotation) + { + visitAnnotation(clazz, method, annotation); + } + + + // Simplifications for ElementValueVisitor. + + public void visitAnyElementValue(Clazz clazz, Annotation annotation, ElementValue elementValue) + { + throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); + } + + + public void visitConstantElementValue(Clazz clazz, Annotation annotation, ConstantElementValue constantElementValue) + { + visitAnyElementValue(clazz, annotation, constantElementValue); + } + + + public void visitEnumConstantElementValue(Clazz clazz, Annotation annotation, EnumConstantElementValue enumConstantElementValue) + { + visitAnyElementValue(clazz, annotation, enumConstantElementValue); + } + + + public void visitClassElementValue(Clazz clazz, Annotation annotation, ClassElementValue classElementValue) + { + visitAnyElementValue(clazz, annotation, classElementValue); + } + + + public void visitAnnotationElementValue(Clazz clazz, Annotation annotation, AnnotationElementValue annotationElementValue) + { + visitAnyElementValue(clazz, annotation, annotationElementValue); + } + + + public void visitArrayElementValue(Clazz clazz, Annotation annotation, ArrayElementValue arrayElementValue) + { + visitAnyElementValue(clazz, annotation, arrayElementValue); + } +} |