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.ClassVisitorA 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 classTypeWriter.Default.ForInlining.RedefinitionClassVisitor.AttributeObtainingFieldVisitorA field visitor that obtains all attributes and annotations of a field that is found in the class file but that discards all code.protected classTypeWriter.Default.ForInlining.RedefinitionClassVisitor.AttributeObtainingMethodVisitorA method visitor that obtains all attributes and annotations of a method that is found in the class file but that discards all code.protected classTypeWriter.Default.ForInlining.RedefinitionClassVisitor.CodePreservingMethodVisitorA 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 protectedRedefinitionClassVisitor(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.MethodVisitorredefine(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.FieldVisitorredefine(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.voidvisit(int classFileVersionNumber, int modifiers, java.lang.String internalName, java.lang.String genericSignature, java.lang.String superClassInternalName, java.lang.String[] interfaceTypeInternalName)org.objectweb.asm.AnnotationVisitorvisitAnnotation(java.lang.String descriptor, boolean visible)voidvisitEnd()org.objectweb.asm.FieldVisitorvisitField(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String genericSignature, java.lang.Object defaultValue)voidvisitInnerClass(java.lang.String internalName, java.lang.String outerName, java.lang.String innerName, int modifiers)org.objectweb.asm.MethodVisitorvisitMethod(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String genericSignature, java.lang.String[] exceptionName)org.objectweb.asm.AnnotationVisitorvisitTypeAnnotation(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:
visitin classorg.objectweb.asm.ClassVisitor
-
visitInnerClass
public void visitInnerClass(java.lang.String internalName, java.lang.String outerName, java.lang.String innerName, int modifiers)- Overrides:
visitInnerClassin 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:
visitTypeAnnotationin classorg.objectweb.asm.ClassVisitor
-
visitAnnotation
public org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String descriptor, boolean visible)- Overrides:
visitAnnotationin 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:
visitFieldin 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:
visitMethodin 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-trueif 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:
visitEndin classorg.objectweb.asm.ClassVisitor
-
-