Package net.bytebuddy.dynamic.scaffold
Class TypeWriter.Default.ForInlining.RedefinitionClassVisitor
- java.lang.Object
-
- org.objectweb.asm.ClassVisitor
-
- net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForInlining.RedefinitionClassVisitor
-
- Enclosing class:
- TypeWriter.Default.ForInlining<U>
protected class TypeWriter.Default.ForInlining.RedefinitionClassVisitor extends org.objectweb.asm.ClassVisitor
A class visitor which is capable of applying a redefinition of an existing class file.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 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.
-
Constructor Summary
Constructors Modifier Constructor Description protected
RedefinitionClassVisitor(org.objectweb.asm.ClassVisitor classVisitor, TypeInitializer typeInitializer, TypeWriter.Default.ForInlining.ContextRegistry contextRegistry, int writerFlags, int readerFlags)
Creates a class visitor which is capable of redefining an existent class on the fly.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.objectweb.asm.MethodVisitor
redefine(MethodDescription methodDescription, boolean abstractOrigin, java.lang.String genericSignature)
Redefines a given method if this is required by looking up a potential implementation from theTypeWriter.MethodPool
.protected org.objectweb.asm.FieldVisitor
redefine(TypeWriter.FieldPool.Record record, java.lang.Object defaultValue, java.lang.String genericSignature)
Redefines a field using the given explicit field pool record and default value.void
visit(int classFileVersionNumber, int modifiers, java.lang.String internalName, java.lang.String genericSignature, java.lang.String superClassInternalName, java.lang.String[] interfaceTypeInternalName)
org.objectweb.asm.AnnotationVisitor
visitAnnotation(java.lang.String descriptor, boolean visible)
void
visitEnd()
org.objectweb.asm.FieldVisitor
visitField(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String genericSignature, java.lang.Object defaultValue)
void
visitInnerClass(java.lang.String internalName, java.lang.String outerName, java.lang.String innerName, int modifiers)
org.objectweb.asm.MethodVisitor
visitMethod(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String genericSignature, java.lang.String[] exceptionName)
org.objectweb.asm.AnnotationVisitor
visitTypeAnnotation(int typeReference, org.objectweb.asm.TypePath typePath, java.lang.String descriptor, boolean visible)
-
-
-
Constructor Detail
-
RedefinitionClassVisitor
protected RedefinitionClassVisitor(org.objectweb.asm.ClassVisitor classVisitor, TypeInitializer typeInitializer, TypeWriter.Default.ForInlining.ContextRegistry contextRegistry, int writerFlags, int readerFlags)
Creates a class visitor which is capable of redefining an existent class on the fly.- Parameters:
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.writerFlags
- The writer flags being used.readerFlags
- The reader flags being used.
-
-
Method Detail
-
visit
public void visit(int classFileVersionNumber, int modifiers, java.lang.String internalName, java.lang.String genericSignature, java.lang.String superClassInternalName, java.lang.String[] interfaceTypeInternalName)
- Overrides:
visit
in classorg.objectweb.asm.ClassVisitor
-
visitInnerClass
public void visitInnerClass(java.lang.String internalName, java.lang.String outerName, java.lang.String innerName, int modifiers)
- Overrides:
visitInnerClass
in classorg.objectweb.asm.ClassVisitor
-
visitTypeAnnotation
public org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int typeReference, org.objectweb.asm.TypePath typePath, java.lang.String descriptor, boolean visible)
- Overrides:
visitTypeAnnotation
in classorg.objectweb.asm.ClassVisitor
-
visitAnnotation
public org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String descriptor, boolean visible)
- Overrides:
visitAnnotation
in classorg.objectweb.asm.ClassVisitor
-
visitField
public org.objectweb.asm.FieldVisitor visitField(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String genericSignature, java.lang.Object defaultValue)
- Overrides:
visitField
in classorg.objectweb.asm.ClassVisitor
-
redefine
protected org.objectweb.asm.FieldVisitor redefine(TypeWriter.FieldPool.Record record, java.lang.Object defaultValue, java.lang.String genericSignature)
Redefines a field using the given explicit field pool record and default value.- Parameters:
record
- The field pool value to apply during visitation of the existing field.defaultValue
- The default value to write onto the field which might benull
.genericSignature
- The field's original generic signature which can benull
.- Returns:
- A field visitor for visiting the existing field definition.
-
visitMethod
public org.objectweb.asm.MethodVisitor visitMethod(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String genericSignature, java.lang.String[] exceptionName)
- Overrides:
visitMethod
in classorg.objectweb.asm.ClassVisitor
-
redefine
protected org.objectweb.asm.MethodVisitor redefine(MethodDescription methodDescription, boolean abstractOrigin, java.lang.String genericSignature)
Redefines a given method if this is required by looking up a potential implementation from theTypeWriter.MethodPool
.- Parameters:
methodDescription
- The method being considered for redefinition.abstractOrigin
-true
if the original method is abstract, i.e. there is no implementation to preserve.genericSignature
- The method's original generic signature which can benull
.- Returns:
- A method visitor which is capable of consuming the original method.
-
visitEnd
public void visitEnd()
- Overrides:
visitEnd
in classorg.objectweb.asm.ClassVisitor
-
-