📄 simplifiedvisitor.java
字号:
/* * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * * Copyright (c) 2002-2007 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 */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)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -