public abstract static class TypeWriter.Default.ForInlining.WithFullProcessing.InitializationHandler.Appending extends MethodVisitor implements TypeWriter.Default.ForInlining.WithFullProcessing.InitializationHandler, TypeInitializer.Drain
Modifier and Type | Class and Description |
---|---|
protected static interface |
TypeWriter.Default.ForInlining.WithFullProcessing.InitializationHandler.Appending.FrameWriter
A frame writer is responsible for adding empty frames on jump instructions.
|
protected static class |
TypeWriter.Default.ForInlining.WithFullProcessing.InitializationHandler.Appending.WithDrain
An initialization handler that appends code to a previously visited type initializer with allowing active
TypeInitializer registrations. |
protected static class |
TypeWriter.Default.ForInlining.WithFullProcessing.InitializationHandler.Appending.WithoutDrain
An initialization handler that appends code to a previously visited type initializer without allowing active
TypeInitializer registrations. |
TypeWriter.Default.ForInlining.WithFullProcessing.InitializationHandler.Appending, TypeWriter.Default.ForInlining.WithFullProcessing.InitializationHandler.Creating
TypeInitializer.Drain.Default
Modifier and Type | Field and Description |
---|---|
protected AnnotationValueFilter.Factory |
annotationValueFilterFactory
The used annotation value filter factory.
|
protected TypeWriter.Default.ForInlining.WithFullProcessing.InitializationHandler.Appending.FrameWriter |
frameWriter
The frame writer to use.
|
protected TypeDescription |
instrumentedType
The instrumented type.
|
protected int |
localVariableLength
The currently recorded local variable length.
|
protected TypeWriter.MethodPool.Record |
record
The method pool record for the type initializer.
|
protected int |
stackSize
The currently recorded stack size.
|
api, mv
Modifier | Constructor and Description |
---|---|
protected |
Appending(MethodVisitor methodVisitor,
TypeDescription instrumentedType,
TypeWriter.MethodPool.Record record,
AnnotationValueFilter.Factory annotationValueFilterFactory,
boolean requireFrames,
boolean expandFrames)
Creates a new appending initialization handler.
|
Modifier and Type | Method and Description |
---|---|
void |
apply(ClassVisitor classVisitor,
TypeInitializer typeInitializer,
Implementation.Context implementationContext)
Applies the drain.
|
void |
complete(ClassVisitor classVisitor,
Implementation.Context.ExtractableView implementationContext)
Invoked upon completion of writing the instrumented type.
|
protected static TypeWriter.Default.ForInlining.WithFullProcessing.InitializationHandler |
of(boolean enabled,
MethodVisitor methodVisitor,
TypeDescription instrumentedType,
TypeWriter.MethodPool methodPool,
AnnotationValueFilter.Factory annotationValueFilterFactory,
boolean requireFrames,
boolean expandFrames)
Resolves an initialization handler.
|
protected abstract void |
onComplete(Implementation.Context implementationContext)
Invoked upon completion of writing the type initializer.
|
protected abstract void |
onStart()
Invoked after the user code was visited.
|
void |
visitCode() |
abstract void |
visitEnd() |
void |
visitFrame(int type,
int localVariableLength,
Object[] localVariable,
int stackSize,
Object[] stack) |
void |
visitMaxs(int stackSize,
int localVariableLength) |
visitAnnotableParameterCount, visitAnnotation, visitAnnotationDefault, visitAttribute, visitFieldInsn, visitIincInsn, visitInsn, visitInsnAnnotation, visitIntInsn, visitInvokeDynamicInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLocalVariable, visitLocalVariableAnnotation, visitLookupSwitchInsn, visitMethodInsn, visitMethodInsn, visitMultiANewArrayInsn, visitParameter, visitParameterAnnotation, visitTableSwitchInsn, visitTryCatchAnnotation, visitTryCatchBlock, visitTypeAnnotation, visitTypeInsn, visitVarInsn
protected final TypeDescription instrumentedType
protected final TypeWriter.MethodPool.Record record
protected final AnnotationValueFilter.Factory annotationValueFilterFactory
protected final TypeWriter.Default.ForInlining.WithFullProcessing.InitializationHandler.Appending.FrameWriter frameWriter
protected int stackSize
protected int localVariableLength
protected Appending(MethodVisitor methodVisitor, TypeDescription instrumentedType, TypeWriter.MethodPool.Record record, AnnotationValueFilter.Factory annotationValueFilterFactory, boolean requireFrames, boolean expandFrames)
methodVisitor
- The underlying method visitor.instrumentedType
- The instrumented type.record
- The method pool record for the type initializer.annotationValueFilterFactory
- The used annotation value filter factory.requireFrames
- true
if the visitor is required to add frames.expandFrames
- true
if the visitor is required to expand any added frame.protected static TypeWriter.Default.ForInlining.WithFullProcessing.InitializationHandler of(boolean enabled, MethodVisitor methodVisitor, TypeDescription instrumentedType, TypeWriter.MethodPool methodPool, AnnotationValueFilter.Factory annotationValueFilterFactory, boolean requireFrames, boolean expandFrames)
enabled
- true
if the implementation context is enabled, i.e. any TypeInitializer
might be active.methodVisitor
- The delegation method visitor.instrumentedType
- The instrumented type.methodPool
- The method pool to use.annotationValueFilterFactory
- The annotation value filter factory to use.requireFrames
- true
if frames must be computed.expandFrames
- true
if frames must be expanded.MethodVisitor
.public void visitCode()
visitCode
in class MethodVisitor
protected abstract void onStart()
public void visitFrame(int type, int localVariableLength, Object[] localVariable, int stackSize, Object[] stack)
visitFrame
in class MethodVisitor
public void visitMaxs(int stackSize, int localVariableLength)
visitMaxs
in class MethodVisitor
public abstract void visitEnd()
visitEnd
in class MethodVisitor
public void apply(ClassVisitor classVisitor, TypeInitializer typeInitializer, Implementation.Context implementationContext)
apply
in interface TypeInitializer.Drain
classVisitor
- The class visitor to apply the initializer to.typeInitializer
- The type initializer to write.implementationContext
- The corresponding implementation context.protected abstract void onComplete(Implementation.Context implementationContext)
implementationContext
- The implementation context to use.public void complete(ClassVisitor classVisitor, Implementation.Context.ExtractableView implementationContext)
complete
in interface TypeWriter.Default.ForInlining.WithFullProcessing.InitializationHandler
classVisitor
- The class visitor to write any methods to.implementationContext
- The implementation context to use.Copyright © 2014–2020. All rights reserved.