Package net.bytebuddy.dynamic.scaffold
Class TypeInitializer.Simple
- java.lang.Object
-
- net.bytebuddy.dynamic.scaffold.TypeInitializer.Simple
-
- All Implemented Interfaces:
TypeInitializer
,ByteCodeAppender
- Enclosing interface:
- TypeInitializer
@Enhance public static class TypeInitializer.Simple extends java.lang.Object implements TypeInitializer
A simple, defined type initializer that executes a givenByteCodeAppender
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface net.bytebuddy.implementation.bytecode.ByteCodeAppender
ByteCodeAppender.Compound, ByteCodeAppender.Size
-
Nested classes/interfaces inherited from interface net.bytebuddy.dynamic.scaffold.TypeInitializer
TypeInitializer.Drain, TypeInitializer.None, TypeInitializer.Simple
-
-
Field Summary
Fields Modifier and Type Field Description private ByteCodeAppender
byteCodeAppender
The byte code appender to apply as the type initializer.
-
Constructor Summary
Constructors Constructor Description Simple(ByteCodeAppender byteCodeAppender)
Creates a new simple type initializer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ByteCodeAppender.Size
apply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, MethodDescription instrumentedMethod)
Applies this byte code appender to a type creation process.TypeInitializer
expandWith(ByteCodeAppender byteCodeAppender)
Expands this type initializer with another byte code appender.boolean
isDefined()
Indicates if this type initializer is defined.TypeWriter.MethodPool.Record
wrap(TypeWriter.MethodPool.Record record)
Creates a method pool record that applies this type initializer while preserving the record that was supplied.
-
-
-
Field Detail
-
byteCodeAppender
private final ByteCodeAppender byteCodeAppender
The byte code appender to apply as the type initializer.
-
-
Constructor Detail
-
Simple
public Simple(ByteCodeAppender byteCodeAppender)
Creates a new simple type initializer.- Parameters:
byteCodeAppender
- The byte code appender to apply as the type initializer.
-
-
Method Detail
-
isDefined
public boolean isDefined()
Indicates if this type initializer is defined.- Specified by:
isDefined
in interfaceTypeInitializer
- Returns:
true
if this type initializer is defined.
-
expandWith
public TypeInitializer expandWith(ByteCodeAppender byteCodeAppender)
Expands this type initializer with another byte code appender. For this to be possible, this type initializer must be defined.- Specified by:
expandWith
in interfaceTypeInitializer
- Parameters:
byteCodeAppender
- The byte code appender to apply as the type initializer.- Returns:
- A defined type initializer.
-
wrap
public TypeWriter.MethodPool.Record wrap(TypeWriter.MethodPool.Record record)
Creates a method pool record that applies this type initializer while preserving the record that was supplied.- Specified by:
wrap
in interfaceTypeInitializer
- Parameters:
record
- The record to wrap.- Returns:
- A new record that represents the supplied record while also executing this type initializer.
-
apply
public ByteCodeAppender.Size apply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, MethodDescription instrumentedMethod)
Applies this byte code appender to a type creation process.- Specified by:
apply
in interfaceByteCodeAppender
- Parameters:
methodVisitor
- The method visitor to which the byte code appender writes its code to.implementationContext
- The implementation context of the current type creation process.instrumentedMethod
- The method that is the target of the instrumentation.- Returns:
- The required size for the applied byte code to run.
-
-