Interface TypeInitializer
- All Superinterfaces:
ByteCodeAppender
- All Known Implementing Classes:
TypeInitializer.None, TypeInitializer.Simple
A type initializer is responsible for defining a type's static initialization block.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceA drain for writing a type initializer.static enumCanonical implementation of a non-defined type initializer.static classA simple, defined type initializer that executes a givenByteCodeAppender.Nested classes/interfaces inherited from interface ByteCodeAppender
ByteCodeAppender.Compound, ByteCodeAppender.Size -
Method Summary
Modifier and TypeMethodDescriptionexpandWith(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.Methods inherited from interface ByteCodeAppender
apply
-
Method Details
-
isDefined
boolean isDefined()Indicates if this type initializer is defined.- 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.- 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.- Parameters:
record- The record to wrap.- Returns:
- A new record that represents the supplied record while also executing this type initializer.
-