Class TypeInitializer.Simple

    • 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 interface TypeInitializer
        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 interface TypeInitializer
        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 interface TypeInitializer
        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 interface ByteCodeAppender
        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.