protected class TypeWriter.Default.ForInlining.RedefinitionClassVisitor extends ClassVisitor
Modifier and Type | Class and Description |
---|---|
protected class |
TypeWriter.Default.ForInlining.RedefinitionClassVisitor.AttributeObtainingFieldVisitor
A field visitor that obtains all attributes and annotations of a field that is found in the
class file but that discards all code.
|
protected class |
TypeWriter.Default.ForInlining.RedefinitionClassVisitor.AttributeObtainingMethodVisitor
A method visitor that obtains all attributes and annotations of a method that is found in the
class file but that discards all code.
|
protected class |
TypeWriter.Default.ForInlining.RedefinitionClassVisitor.CodePreservingMethodVisitor
A method visitor that preserves the code of a method in the class file by copying it into a rebased
method while copying all attributes and annotations to the actual method.
|
protected class |
TypeWriter.Default.ForInlining.RedefinitionClassVisitor.TypeInitializerInjection
A code injection for the type initializer that invokes a method representing the original type initializer
which is copied to a static method.
|
api, cv
Modifier | Constructor and Description |
---|---|
protected |
RedefinitionClassVisitor(ClassVisitor classVisitor,
TypeInitializer typeInitializer,
TypeWriter.Default.ForInlining.ContextRegistry contextRegistry)
Creates a class visitor which is capable of redefining an existent class on the fly.
|
Modifier and Type | Method and Description |
---|---|
protected MethodVisitor |
redefine(MethodDescription methodDescription,
boolean abstractOrigin)
Redefines a given method if this is required by looking up a potential implementation from the
TypeWriter.MethodPool . |
protected FieldVisitor |
redefine(TypeWriter.FieldPool.Record record,
Object defaultValue)
Redefines a field using the given explicit field pool record and default value.
|
String |
toString() |
void |
visit(int classFileVersionNumber,
int modifiers,
String internalName,
String genericSignature,
String superClassInternalName,
String[] interfaceTypeInternalName) |
AnnotationVisitor |
visitAnnotation(String descriptor,
boolean visible) |
void |
visitEnd() |
FieldVisitor |
visitField(int modifiers,
String internalName,
String descriptor,
String genericSignature,
Object defaultValue) |
void |
visitInnerClass(String internalName,
String outerName,
String innerName,
int modifiers) |
MethodVisitor |
visitMethod(int modifiers,
String internalName,
String descriptor,
String genericSignature,
String[] exceptionTypeInternalName) |
AnnotationVisitor |
visitTypeAnnotation(int typeReference,
TypePath typePath,
String descriptor,
boolean visible) |
visitAttribute, visitOuterClass, visitSource
protected RedefinitionClassVisitor(ClassVisitor classVisitor, TypeInitializer typeInitializer, TypeWriter.Default.ForInlining.ContextRegistry contextRegistry)
classVisitor
- The underlying class visitor to which writes are delegated.typeInitializer
- The type initializer to apply.contextRegistry
- A context registry to register the lazily created implementation context to.public void visit(int classFileVersionNumber, int modifiers, String internalName, String genericSignature, String superClassInternalName, String[] interfaceTypeInternalName)
visit
in class ClassVisitor
public void visitInnerClass(String internalName, String outerName, String innerName, int modifiers)
visitInnerClass
in class ClassVisitor
public AnnotationVisitor visitTypeAnnotation(int typeReference, TypePath typePath, String descriptor, boolean visible)
visitTypeAnnotation
in class ClassVisitor
public AnnotationVisitor visitAnnotation(String descriptor, boolean visible)
visitAnnotation
in class ClassVisitor
public FieldVisitor visitField(int modifiers, String internalName, String descriptor, String genericSignature, Object defaultValue)
visitField
in class ClassVisitor
protected FieldVisitor redefine(TypeWriter.FieldPool.Record record, Object defaultValue)
record
- The field pool value to apply during visitation of the existing field.defaultValue
- The default value to write onto the field which might be null
.public MethodVisitor visitMethod(int modifiers, String internalName, String descriptor, String genericSignature, String[] exceptionTypeInternalName)
visitMethod
in class ClassVisitor
protected MethodVisitor redefine(MethodDescription methodDescription, boolean abstractOrigin)
TypeWriter.MethodPool
.methodDescription
- The method being considered for redefinition.abstractOrigin
- true
if the original method is abstract, i.e. there is no implementation
to preserve.public void visitEnd()
visitEnd
in class ClassVisitor
Copyright © 2014–2016. All rights reserved.