Package mockit.asm.classes
Class ClassVisitor
java.lang.Object
mockit.asm.BaseWriter
mockit.asm.classes.ClassVisitor
- Direct Known Subclasses:
ClassWriter
,WrappingClassVisitor
A visitor to visit a Java class, in the following order:
visit
(visitAnnotation
)* (visitInnerClass
| visitField
|
visitMethod
)* visitEnd
.-
Field Summary
Fields inherited from class mockit.asm.BaseWriter
annotations, classOrMemberAccess, cp
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbyte[]
Returns the bytecode of the class that was built with this class visitor.void
Visits the header of the class.visitField
(int access, String name, String desc, String signature, Object value) Visits a field of the class.void
visitInnerClass
(String name, String outerName, String innerName, int access) Visits information about an inner class, which is not necessarily a member of the class being visited.visitMethod
(int access, String name, String desc, String signature, String[] exceptions) Visits a method of the class.Methods inherited from class mockit.asm.BaseWriter
createMarkerAttributes, getAnnotationsSize, getConstantPoolGeneration, getMarkerAttributeCount, getMarkerAttributesSize, put, put, putAccess, putAnnotations, putMarkerAttributes, visitAnnotation, visitEnd
-
Constructor Details
-
ClassVisitor
protected ClassVisitor()
-
-
Method Details
-
visit
Visits the header of the class.- Parameters:
version
- the class versionaccess
- the class's access flags (seeAccess
)name
- the internal name of the classadditionalInfo
- additional class information
-
visitInnerClass
public void visitInnerClass(@NonNull String name, @Nullable String outerName, @Nullable String innerName, int access) Visits information about an inner class, which is not necessarily a member of the class being visited.- Parameters:
name
- the internal name of an inner classouterName
- the internal name of the class to which the inner class belongs;null
for not member classesinnerName
- the (simple) name of the inner class inside its enclosing class;null
for anonymous inner classesaccess
- the access flags of the inner class as originally declared in the enclosing class
-
visitField
@Nullable public FieldVisitor visitField(int access, @NonNull String name, @NonNull String desc, @Nullable String signature, @Nullable Object value) Visits a field of the class.- Parameters:
access
- the field's access flags (seeAccess
)name
- the field's namedesc
- the field's descriptor (seeJavaType
)signature
- the field's signature;null
when the field's type does not use generic typesvalue
- the field's initial value;null
when the field does not have an initial value; otherwise, must be anInteger
, aFloat
, aLong
, aDouble
or aString
(forint
,float
,long
orString
fields respectively); this parameter is only used for static fields; its value is ignored for non static fields, which must be initialized through bytecode instructions in constructors or methods- Returns:
- a visitor to visit field annotations and attributes, or
null
if this class visitor is not interested in visiting these annotations and attributes
-
visitMethod
@Nullable public MethodVisitor visitMethod(int access, @NonNull String name, @NonNull String desc, @Nullable String signature, @Nullable String[] exceptions) Visits a method of the class. This method must return a newMethodVisitor
instance (ornull
) each time it is called, i.e., it should not return a previously returned visitor.- Parameters:
access
- the method's access flags (seeOpcodes
)name
- the method's namedesc
- the method's descriptor (seeJavaType
)signature
- the method's signature,null
if the method parameters, return type and exceptions do not use generic typesexceptions
- the internal names of the method's exception classes- Returns:
- an object to visit the byte code of the method, or
null
if this class visitor is not interested in visiting the code of this method
-
toByteArray
public byte[] toByteArray()Returns the bytecode of the class that was built with this class visitor.
-