Class BaseSubclassGenerator
java.lang.Object
mockit.asm.BaseWriter
mockit.asm.classes.ClassVisitor
mockit.asm.classes.WrappingClassVisitor
mockit.internal.BaseClassModifier
mockit.internal.classGeneration.BaseSubclassGenerator
- Direct Known Subclasses:
SubclassGenerationModifier
-
Field Summary
FieldsFields inherited from class BaseClassModifier
classDesc, methodAccess, methodAnnotationsVisitor, methodDesc, methodName, mw, superClassName, useClassLoadingBridge, VOID_TYPEFields inherited from class WrappingClassVisitor
cwFields inherited from class BaseWriter
annotations, classOrMemberAccess, cp -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBaseSubclassGenerator(Class<?> baseClass, ClassReader cr, Type genericMockedType, String subclassName, boolean copyConstructors) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidgenerateMethodImplementation(String className, int access, String name, String desc, String signature, String[] exceptions) voidVisits the header of the class.voidvisitEnd()Visits the end of the class/field/method being visited.final FieldVisitorvisitField(int access, String name, String desc, String signature, Object value) Visits a field of the class.final voidvisitInnerClass(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 BaseClassModifier
copyOriginalImplementationWithInjectedInterceptionCode, generateCallToInvocationHandler, generateCodeToCreateArrayOfObject, generateCodeToFillArrayElement, generateCodeToFillArrayWithParameterValues, generateCodeToObtainInstanceOfClassLoadingBridge, generateCodeToPassThisOrNullIfStaticMethod, generateDirectCallToHandler, generateDirectCallToHandler, generateEmptyImplementation, generateEmptyImplementation, generateInterceptionCode, generateReturnWithObjectAtTopOfTheStack, setUseClassLoadingBridge, startModifiedMethodVersion, wasModifiedMethods inherited from class WrappingClassVisitor
toByteArray, visitAnnotationMethods inherited from class BaseWriter
createMarkerAttributes, getAnnotationsSize, getConstantPoolGeneration, getMarkerAttributeCount, getMarkerAttributesSize, put, put, putAccess, putAnnotations, putMarkerAttributes
-
Field Details
-
mockedTypeInfo
-
-
Constructor Details
-
BaseSubclassGenerator
protected BaseSubclassGenerator(@NonNull Class<?> baseClass, @NonNull ClassReader cr, @Nullable Type genericMockedType, @NonNull String subclassName, boolean copyConstructors)
-
-
Method Details
-
visit
Description copied from class:ClassVisitorVisits the header of the class.- Overrides:
visitin classBaseClassModifier- Parameters:
version- the class versionaccess- the class's access flags (seeAccess)name- the internal name of the classadditionalInfo- additional class information
-
visitInnerClass
public final void visitInnerClass(@NonNull String name, @Nullable String outerName, @Nullable String innerName, int access) Description copied from class:ClassVisitorVisits information about an inner class, which is not necessarily a member of the class being visited.- Overrides:
visitInnerClassin classWrappingClassVisitor- Parameters:
name- the internal name of an inner classouterName- the internal name of the class to which the inner class belongs;nullfor not member classesinnerName- the (simple) name of the inner class inside its enclosing class;nullfor anonymous inner classesaccess- the access flags of the inner class as originally declared in the enclosing class
-
visitField
@Nullable public final FieldVisitor visitField(int access, @NonNull String name, @NonNull String desc, @Nullable String signature, @Nullable Object value) Description copied from class:ClassVisitorVisits a field of the class.- Overrides:
visitFieldin classWrappingClassVisitor- Parameters:
access- the field's access flags (seeAccess)name- the field's namedesc- the field's descriptor (seeJavaType)signature- the field's signature;nullwhen the field's type does not use generic typesvalue- the field's initial value;nullwhen the field does not have an initial value; otherwise, must be anInteger, aFloat, aLong, aDoubleor aString(forint,float,longorStringfields 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
nullif 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) Description copied from class:ClassVisitorVisits a method of the class. This method must return a newMethodVisitorinstance (ornull) each time it is called, i.e., it should not return a previously returned visitor.- Overrides:
visitMethodin classWrappingClassVisitor- Parameters:
access- the method's access flags (seeOpcodes)name- the method's namedesc- the method's descriptor (seeJavaType)signature- the method's signature,nullif 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
nullif this class visitor is not interested in visiting the code of this method
-
generateMethodImplementation
-
visitEnd
public void visitEnd()Description copied from class:BaseWriterVisits the end of the class/field/method being visited. This method, which is the last one to be called, is used to inform the visitor that all the annotations and attributes of the class/field/method have been visited.- Overrides:
visitEndin classBaseWriter
-