Interface MethodBuilder
- All Superinterfaces:
ClassFileBuilder<MethodElement, MethodBuilder>, Consumer<MethodElement>
A builder for methods. The main way to obtain a method builder is via
ClassBuilder.withMethod(String, MethodTypeDesc, int, Consumer)
. ClassBuilder.withMethodBody(String, MethodTypeDesc, int, Consumer)
is
useful if no attribute on the method except Code
needs to
be configured, skipping the method handler.
Refer to ClassFileBuilder
for general guidance and caution around
the use of builders for structures in the class
file format.
- See Java Virtual Machine Specification:
-
4.6 Methods
- Since:
- 24
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptiontransformCode
(CodeModel code, CodeTransform transform) Build the method body for this method by transforming the body of another method.withCode
(Consumer<? super CodeBuilder> code) Build the method body for this method.default MethodBuilder
withFlags
(int flags) Sets the method access flags.default MethodBuilder
withFlags
(AccessFlag... flags) Sets the method access flags.Methods declared in interface ClassFileBuilder
accept, constantPool, transform, with
Modifier and TypeMethodDescriptiondefault void
Integrates the member element into the structure being built.Returns the constant pool builder associated with this builder.default MethodBuilder
transform
(CompoundElement<MethodElement> model, ClassFileTransform<?, MethodElement, MethodBuilder> transform) Applies a transform to a compound structure, directing results to this builder.Integrates the member element into the structure being built.Methods declared in interface Consumer
andThen
Modifier and TypeMethodDescriptiondefault Consumer
<MethodElement> andThen
(Consumer<? super MethodElement> after) Returns a composedConsumer
that performs, in sequence, this operation followed by theafter
operation.
-
Method Details
-
withFlags
Sets the method access flags. TheAccessFlag.STATIC
flag cannot be modified after the builder is created.- Parameters:
flags
- the access flags, as a bit mask- Returns:
- this builder
- Throws:
IllegalArgumentException
- ifflags
is notu2
, or theACC_STATIC
flag is modified- See Also:
-
withFlags
Sets the method access flags. TheAccessFlag.STATIC
flag cannot be modified after the builder is created.- Parameters:
flags
- the access flags, as a bit mask- Returns:
- this builder
- Throws:
IllegalArgumentException
- if theACC_STATIC
flag is modified, or if any flag cannot be applied to theAccessFlag.Location.METHOD
location- See Also:
-
withCode
Build the method body for this method.- Parameters:
code
- a handler receiving aCodeBuilder
- Returns:
- this builder
- See Also:
-
transformCode
Build the method body for this method by transforming the body of another method.This method behaves as if:
withCode(cob -> cob.transform(code, transform));
- Parameters:
code
- the method body to be transformedtransform
- the transform to apply to the method body- Returns:
- this builder
- See Also:
-