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
A simple, defined type initializer that executes a given
ByteCodeAppender.-
Nested Class Summary
Nested classes/interfaces inherited from interface net.bytebuddy.implementation.bytecode.ByteCodeAppender
ByteCodeAppender.Compound, ByteCodeAppender.SizeNested classes/interfaces inherited from interface net.bytebuddy.dynamic.scaffold.TypeInitializer
TypeInitializer.Drain, TypeInitializer.None, TypeInitializer.Simple -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ByteCodeAppenderThe byte code appender to apply as the type initializer. -
Constructor Summary
ConstructorsConstructorDescriptionSimple(ByteCodeAppender byteCodeAppender) Creates a new simple type initializer. -
Method Summary
Modifier and TypeMethodDescriptionapply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, MethodDescription instrumentedMethod) Applies this byte code appender to a type creation process.expandWith(ByteCodeAppender byteCodeAppender) Expands this type initializer with another byte code appender.booleanIndicates if this type initializer is defined.wrap(TypeWriter.MethodPool.Record record) Creates a method pool record that applies this type initializer while preserving the record that was supplied.
-
Field Details
-
byteCodeAppender
The byte code appender to apply as the type initializer.
-
-
Constructor Details
-
Simple
Creates a new simple type initializer.- Parameters:
byteCodeAppender- The byte code appender to apply as the type initializer.
-
-
Method Details
-
isDefined
public boolean isDefined()Indicates if this type initializer is defined.- Specified by:
isDefinedin interfaceTypeInitializer- Returns:
trueif this type initializer is defined.
-
expandWith
Expands this type initializer with another byte code appender. For this to be possible, this type initializer must be defined.- Specified by:
expandWithin interfaceTypeInitializer- Parameters:
byteCodeAppender- The byte code appender to apply as the type initializer.- Returns:
- A defined type initializer.
-
wrap
Creates a method pool record that applies this type initializer while preserving the record that was supplied.- Specified by:
wrapin 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:
applyin 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.
-