Package serp.bytecode.visitor
Class BCVisitor
java.lang.Object
serp.bytecode.visitor.BCVisitor
- Direct Known Subclasses:
PrettyPrintVisitor
Base class for visitors on a bytecode entity. The public
visit(serp.bytecode.visitor.VisitAcceptor)
method will traverse the object graph of the given entity, calling the
enter* and exit* methods as it visits each
object. The traversal is done depth-first. Subclasses should override
only the methods for visiting the entities they are interested in.
Whenever there is a general method (i.e. enter/exitEntry) as
well as a more specific one (i.e. enter/exitStringEntry), the
more general method will be called first, followed by a call on the correct
specific method. Most subclasses will override either the general or
specific cases, but not both.- Author:
- Abe White
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidvoidvoidvoidvoidenterAttribute(Attribute obj) voidenterBCClass(BCClass obj) voidenterBCField(BCField obj) voidenterBCMember(BCMember obj) voidenterBCMethod(BCMethod obj) voidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidenterEntry(Entry obj) voidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidenterIntEntry(IntEntry obj) voidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidenterLongEntry(LongEntry obj) voidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidenterProject(Project obj) voidvoidvoidvoidvoidvoidvoidvoidenterSynthetic(Synthetic obj) voidvoidvoidenterUTF8Entry(UTF8Entry obj) voidvoidexitAnnotation(Annotation obj) voidvoidvoidvoidvoidexitAttribute(Attribute obj) voidexitBCClass(BCClass obj) voidexitBCField(BCField obj) voidexitBCMember(BCMember obj) voidexitBCMethod(BCMethod obj) voidvoidexitClassEntry(ClassEntry obj) voidvoidvoidvoidvoidvoidvoidvoidexitDeprecated(Deprecated obj) voidvoidvoidvoidexitExceptions(Exceptions obj) voidexitFieldEntry(FieldEntry obj) voidexitFloatEntry(FloatEntry obj) voidvoidvoidvoidexitInnerClass(InnerClass obj) voidvoidvoidexitIntEntry(IntEntry obj) voidvoidvoidvoidexitLineNumber(LineNumber obj) voidvoidvoidvoidvoidvoidvoidexitLongEntry(LongEntry obj) voidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidexitProject(Project obj) voidvoidvoidvoidexitSourceFile(SourceFile obj) voidvoidvoidvoidexitSynthetic(Synthetic obj) voidvoidvoidexitUTF8Entry(UTF8Entry obj) voidvoidvisit(VisitAcceptor obj) Visit the given entity.
-
Constructor Details
-
BCVisitor
public BCVisitor()
-
-
Method Details
-
visit
Visit the given entity. -
enterProject
-
exitProject
-
enterBCClass
-
exitBCClass
-
enterBCMember
-
exitBCMember
-
enterBCField
-
exitBCField
-
enterBCMethod
-
exitBCMethod
-
enterAttribute
-
exitAttribute
-
enterConstantValue
-
exitConstantValue
-
enterDeprecated
-
exitDeprecated
-
enterExceptions
-
exitExceptions
-
enterInnerClasses
-
exitInnerClasses
-
enterLineNumberTable
-
exitLineNumberTable
-
enterLocalVariableTable
-
exitLocalVariableTable
-
enterLocalVariableTypeTable
-
exitLocalVariableTypeTable
-
enterAnnotations
-
exitAnnotations
-
enterAnnotation
-
exitAnnotation
-
enterAnnotationProperty
-
exitAnnotationProperty
-
enterSourceFile
-
exitSourceFile
-
enterSynthetic
-
exitSynthetic
-
enterUnknownAttribute
-
exitUnknownAttribute
-
enterCode
-
exitCode
-
enterExceptionHandler
-
exitExceptionHandler
-
enterInnerClass
-
exitInnerClass
-
enterLineNumber
-
exitLineNumber
-
enterLocalVariable
-
exitLocalVariable
-
enterLocalVariableType
-
exitLocalVariableType
-
enterInstruction
-
exitInstruction
-
enterArrayLoadInstruction
-
exitArrayLoadInstruction
-
enterArrayStoreInstruction
-
exitArrayStoreInstruction
-
enterClassInstruction
-
exitClassInstruction
-
enterConstantInstruction
-
exitConstantInstruction
-
enterConvertInstruction
-
exitConvertInstruction
-
enterGetFieldInstruction
-
exitGetFieldInstruction
-
enterIIncInstruction
-
exitIIncInstruction
-
enterJumpInstruction
-
exitJumpInstruction
-
enterIfInstruction
-
exitIfInstruction
-
enterLoadInstruction
-
exitLoadInstruction
-
enterLookupSwitchInstruction
-
exitLookupSwitchInstruction
-
enterMathInstruction
-
exitMathInstruction
-
enterMethodInstruction
-
exitMethodInstruction
-
enterMultiANewArrayInstruction
-
exitMultiANewArrayInstruction
-
enterNewArrayInstruction
-
exitNewArrayInstruction
-
enterPutFieldInstruction
-
exitPutFieldInstruction
-
enterRetInstruction
-
exitRetInstruction
-
enterReturnInstruction
-
exitReturnInstruction
-
enterStackInstruction
-
exitStackInstruction
-
enterStoreInstruction
-
exitStoreInstruction
-
enterTableSwitchInstruction
-
exitTableSwitchInstruction
-
enterWideInstruction
-
exitWideInstruction
-
enterMonitorEnterInstruction
-
exitMonitorEnterInstruction
-
enterMonitorExitInstruction
-
exitMonitorExitInstruction
-
enterCmpInstruction
-
exitCmpInstruction
-
enterConstantPool
-
exitConstantPool
-
enterEntry
-
exitEntry
-
enterClassEntry
-
exitClassEntry
-
enterDoubleEntry
-
exitDoubleEntry
-
enterFieldEntry
-
exitFieldEntry
-
enterFloatEntry
-
exitFloatEntry
-
enterIntEntry
-
exitIntEntry
-
enterInterfaceMethodEntry
-
exitInterfaceMethodEntry
-
enterLongEntry
-
exitLongEntry
-
enterMethodEntry
-
exitMethodEntry
-
enterNameAndTypeEntry
-
exitNameAndTypeEntry
-
enterStringEntry
-
exitStringEntry
-
enterUTF8Entry
-
exitUTF8Entry
-
enterInvokeDynamicEntry
-
exitInvokeDynamicEntry
-
enterMethodHandleEntry
-
exitMethodHandleEntry
-
enterMethodTypeEntry
-
exitMethodTypeEntry
-
enterBootstrapMethod
-
exitBootstrapMethod
-