Interface ClassFileBuilder<E extends ClassFileElement,B extends ClassFileBuilder<E,B>>

Type Parameters:
E - the element type
B - the builder type
All Superinterfaces:
Consumer<E>
All Known Subinterfaces:
ClassBuilder, CodeBuilder, CodeBuilder.BlockCodeBuilder, FieldBuilder, MethodBuilder, TerminalCodeBuilder, TerminalFieldBuilder, TerminalMethodBuilder
All Known Implementing Classes:
BlockCodeBuilderImpl, BufferedCodeBuilder, BufferedFieldBuilder, BufferedMethodBuilder, ChainedClassBuilder, ChainedCodeBuilder, ChainedFieldBuilder, ChainedMethodBuilder, DirectClassBuilder, DirectCodeBuilder, DirectFieldBuilder, DirectMethodBuilder, NonterminalCodeBuilder, TransformingCodeBuilder

public sealed interface ClassFileBuilder<E extends ClassFileElement,B extends ClassFileBuilder<E,B>> extends Consumer<E> permits ClassBuilder, FieldBuilder, MethodBuilder, CodeBuilder
A builder for a classfile or portion of a classfile. Builders are rarely created directly; they are passed to handlers by methods such as ClassFile.build(ClassDesc, Consumer) or to transforms. Elements of the newly built entity can be specified abstractly (by passing a ClassFileElement to with(ClassFileElement) or concretely by calling the various withXxx methods.
Since:
22
See Also:
  • Method Details

    • accept

      default void accept(E e)
      Integrate the ClassFileElement into the entity being built.
      Specified by:
      accept in interface Consumer<E extends ClassFileElement>
      Parameters:
      e - the element
    • with

      B with(E e)
      Integrate the ClassFileElement into the entity being built.
      Parameters:
      e - the element
      Returns:
      this builder
    • constantPool

      ConstantPoolBuilder constantPool()
      Returns the constant pool builder associated with this builder.
      Returns:
      the constant pool builder associated with this builder
    • canWriteDirect

      default boolean canWriteDirect(ConstantPool source)
      Returns whether the provided constant pool is compatible with this builder.
      Parameters:
      source - the constant pool to test compatibility with
      Returns:
      whether the provided constant pool is compatible with this builder
    • transform

      default void transform(CompoundElement<E> model, ClassFileTransform<?,E,B> transform)
      Apply a transform to a model, directing results to this builder.
      Parameters:
      model - the model to transform
      transform - the transform to apply