Package net.bytebuddy.dynamic.scaffold
Class TypeWriter.MethodPool.Record.ForDefinedMethod.WithBody
java.lang.Object
net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.ForDefinedMethod
net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.ForDefinedMethod.WithBody
- All Implemented Interfaces:
TypeWriter.MethodPool.Record
- Enclosing class:
TypeWriter.MethodPool.Record.ForDefinedMethod
@Enhance
public static class TypeWriter.MethodPool.Record.ForDefinedMethod.WithBody
extends TypeWriter.MethodPool.Record.ForDefinedMethod
Describes an entry that defines a method as byte code.
-
Nested Class Summary
Nested classes/interfaces inherited from class net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.ForDefinedMethod
TypeWriter.MethodPool.Record.ForDefinedMethod.OfVisibilityBridge, TypeWriter.MethodPool.Record.ForDefinedMethod.WithAnnotationDefaultValue, TypeWriter.MethodPool.Record.ForDefinedMethod.WithBody, TypeWriter.MethodPool.Record.ForDefinedMethod.WithoutBodyNested classes/interfaces inherited from interface net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record
TypeWriter.MethodPool.Record.AccessBridgeWrapper, TypeWriter.MethodPool.Record.ForDefinedMethod, TypeWriter.MethodPool.Record.ForNonImplementedMethod, TypeWriter.MethodPool.Record.Sort -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ByteCodeAppenderThe byte code appender to apply.private final MethodAttributeAppenderThe method attribute appender to apply.private final MethodDescriptionThe implemented method.private final VisibilityThe represented method's minimum visibility. -
Constructor Summary
ConstructorsConstructorDescriptionWithBody(MethodDescription methodDescription, ByteCodeAppender byteCodeAppender) Creates a new record for an implemented method without attributes or a modifier resolver.WithBody(MethodDescription methodDescription, ByteCodeAppender byteCodeAppender, MethodAttributeAppender methodAttributeAppender, Visibility visibility) Creates a new entry for a method that defines a method as byte code. -
Method Summary
Modifier and TypeMethodDescriptionvoidapplyAttributes(org.objectweb.asm.MethodVisitor methodVisitor, AnnotationValueFilter.Factory annotationValueFilterFactory) Applies the attributes of this entry.voidapplyBody(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, AnnotationValueFilter.Factory annotationValueFilterFactory) Applies the body of this entry.applyCode(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext) Applies the code of this entry.voidapplyHead(org.objectweb.asm.MethodVisitor methodVisitor) Applies the head of this entry.Returns the method that is implemented where the returned method resembles a potential transformation.getSort()Returns the sort of this method instrumentation.The visibility to enforce for this method.prepend(ByteCodeAppender byteCodeAppender) Prepends the given method appender to this entry.Methods inherited from class net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.ForDefinedMethod
apply
-
Field Details
-
methodDescription
The implemented method. -
byteCodeAppender
The byte code appender to apply. -
methodAttributeAppender
The method attribute appender to apply. -
visibility
The represented method's minimum visibility.
-
-
Constructor Details
-
WithBody
Creates a new record for an implemented method without attributes or a modifier resolver.- Parameters:
methodDescription- The implemented method.byteCodeAppender- The byte code appender to apply.
-
WithBody
public WithBody(MethodDescription methodDescription, ByteCodeAppender byteCodeAppender, MethodAttributeAppender methodAttributeAppender, Visibility visibility) Creates a new entry for a method that defines a method as byte code.- Parameters:
methodDescription- The implemented method.byteCodeAppender- The byte code appender to apply.methodAttributeAppender- The method attribute appender to apply.visibility- The represented method's minimum visibility.
-
-
Method Details
-
getMethod
Returns the method that is implemented where the returned method resembles a potential transformation. An implemented method is only defined if a method is notTypeWriter.MethodPool.Record.Sort.SKIPPED.- Returns:
- The implemented method.
-
getSort
Returns the sort of this method instrumentation.- Returns:
- The sort of this method instrumentation.
-
getVisibility
The visibility to enforce for this method.- Returns:
- The visibility to enforce for this method.
-
applyHead
public void applyHead(org.objectweb.asm.MethodVisitor methodVisitor) Applies the head of this entry. Applying an entry is only possible if a method is defined, i.e. the sort of this entry is notTypeWriter.MethodPool.Record.Sort.SKIPPED.- Parameters:
methodVisitor- The method visitor to which this entry should be applied.
-
applyBody
public void applyBody(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, AnnotationValueFilter.Factory annotationValueFilterFactory) Applies the body of this entry. Applying the body of an entry is only possible if a method is implemented, i.e. the sort of this entry isTypeWriter.MethodPool.Record.Sort.IMPLEMENTED.- Parameters:
methodVisitor- The method visitor to which this entry should be applied.implementationContext- The implementation context to which this entry should be applied.annotationValueFilterFactory- The annotation value filter factory to apply when writing annotations.
-
applyAttributes
public void applyAttributes(org.objectweb.asm.MethodVisitor methodVisitor, AnnotationValueFilter.Factory annotationValueFilterFactory) Applies the attributes of this entry. Applying the body of an entry is only possible if a method is implemented, i.e. the sort of this entry isTypeWriter.MethodPool.Record.Sort.DEFINED.- Parameters:
methodVisitor- The method visitor to which this entry should be applied.annotationValueFilterFactory- The annotation value filter factory to apply when writing annotations.
-
applyCode
public ByteCodeAppender.Size applyCode(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext) Applies the code of this entry. Applying the body of an entry is only possible if a method is implemented, i.e. the sort of this entry isTypeWriter.MethodPool.Record.Sort.IMPLEMENTED.- Parameters:
methodVisitor- The method visitor to which this entry should be applied.implementationContext- The implementation context to which this entry should be applied.- Returns:
- The size requirements of the implemented code.
-
prepend
Prepends the given method appender to this entry.- Parameters:
byteCodeAppender- The byte code appender to prepend.- Returns:
- This entry with the given code prepended.
-