# Interface CodeBuilder.BlockCodeBuilder

All Superinterfaces:
  `ClassFileBuilder<CodeElement, CodeBuilder>, CodeBuilder, Consumer<CodeElement>`

Enclosing interface:
  `CodeBuilder`

public static sealed interface CodeBuilder.BlockCodeBuilder extends CodeBuilder
A builder for blocks of code. Its `CodeBuilder.startLabel()` and `CodeBuilder.endLabel()` do not enclose the entire method body, but from the start to the end of the block.

The location where a block of code merges back to its parent block, as represented by the `breakLabel()`, is expected to be reachable, either from this block or the parent block. The built code may be malformed if there is no executable code at that location.

Since:
  24

## Nested Class Summary

### Nested classes/interfaces declared in interface CodeBuilder

`CodeBuilder.BlockCodeBuilder, CodeBuilder.CatchBuilder`
Modifier and Type
Interface
Description
`static interface`
`CodeBuilder.BlockCodeBuilder`
A builder for blocks of code.
`static interface`
`CodeBuilder.CatchBuilder`
A builder to add catch blocks.

## Method Summary

Modifier and Type
Method
Description
`Label`
`breakLabel()`
Returns the label locating where control is passed back to the parent block.

### Methods declared in interface ClassFileBuilder

`accept, constantPool, transform, with`
Modifier and Type
Method
Description
`default void`
`accept(CodeElement e)`
Integrates the member element into the structure being built.
`ConstantPoolBuilder`
`constantPool()`
Returns the constant pool builder associated with this builder.
`default CodeBuilder`
`transform(CompoundElement<CodeElement> model, ClassFileTransform<?, CodeElement, CodeBuilder> transform)`
Applies a transform to a compound structure, directing results to this builder.
`CodeBuilder`
`with(CodeElement e)`
Integrates the member element into the structure being built.

### Methods declared in interface CodeBuilder

`aaload, aastore, aconst_null, allocateLocal, aload, anewarray, anewarray, areturn, arraylength, arrayLoad, arrayStore, astore, athrow, baload, bastore, bipush, block, branch, caload, castore, characterRange, checkcast, checkcast, conversion, d2f, d2i, d2l, dadd, daload, dastore, dcmpg, dcmpl, dconst_0, dconst_1, ddiv, dload, dmul, dneg, drem, dreturn, dstore, dsub, dup, dup_x1, dup_x2, dup2, dup2_x1, dup2_x2, endLabel, exceptionCatch, exceptionCatch, exceptionCatch, exceptionCatchAll, f2d, f2i, f2l, fadd, faload, fastore, fcmpg, fcmpl, fconst_0, fconst_1, fconst_2, fdiv, fieldAccess, fieldAccess, fload, fmul, fneg, frem, freturn, fstore, fsub, getfield, getfield, getstatic, getstatic, goto_, goto_w, i2b, i2c, i2d, i2f, i2l, i2s, iadd, iaload, iand, iastore, iconst_0, iconst_1, iconst_2, iconst_3, iconst_4, iconst_5, iconst_m1, idiv, if_acmpeq, if_acmpne, if_icmpeq, if_icmpge, if_icmpgt, if_icmple, if_icmplt, if_icmpne, ifeq, ifge, ifgt, ifle, iflt, ifne, ifnonnull, ifnull, ifThen, ifThen, ifThenElse, ifThenElse, iinc, iload, imul, ineg, instanceOf, instanceOf, invoke, invoke, invokedynamic, invokedynamic, invokeinterface, invokeinterface, invokespecial, invokespecial, invokespecial, invokespecial, invokestatic, invokestatic, invokestatic, invokestatic, invokevirtual, invokevirtual, ior, irem, ireturn, ishl, ishr, istore, isub, iushr, ixor, l2d, l2f, l2i, labelBinding, ladd, laload, land, lastore, lcmp, lconst_0, lconst_1, ldc, ldc, ldiv, lineNumber, lload, lmul, lneg, loadConstant, loadConstant, loadConstant, loadConstant, loadConstant, loadLocal, localVariable, localVariable, localVariableType, localVariableType, lookupswitch, lor, lrem, lreturn, lshl, lshr, lstore, lsub, lushr, lxor, monitorenter, monitorexit, multianewarray, multianewarray, new_, new_, newarray, newBoundLabel, newLabel, nop, parameterSlot, pop, pop2, putfield, putfield, putstatic, putstatic, receiverSlot, return_, return_, saload, sastore, sipush, startLabel, storeLocal, swap, tableswitch, tableswitch, transforming, trying`
Modifier and Type
Method
Description
`default CodeBuilder`
`aaload()`
Generates an instruction to load from a `reference` array.
`default CodeBuilder`
`aastore()`
Generates an instruction to store into a `reference` array.
`default CodeBuilder`
`aconst_null()`
Generates an instruction pushing the null object `reference` onto the operand stack.
`int`
`allocateLocal(TypeKind typeKind)`
Returns the local variable slot of a fresh local variable.
`default CodeBuilder`
`aload(int slot)`
Generates an instruction to load a `reference` from a local variable.
`default CodeBuilder`
`anewarray(ClassEntry classEntry)`
Generates an instruction to create a new array of `reference`.
`default CodeBuilder`
`anewarray(ClassDesc className)`
Generates an instruction to create a new array of `reference`.
`default CodeBuilder`
`areturn()`
Generates an instruction to return a `reference` from this method.
`default CodeBuilder`
`arraylength()`
Generates an instruction to get the length of an array.
`default CodeBuilder`
`arrayLoad(TypeKind tk)`
Generates an instruction to load from an array.
`default CodeBuilder`
`arrayStore(TypeKind tk)`
Generates an instruction to store into an array.
`default CodeBuilder`
`astore(int slot)`
Generates an instruction to store a `reference` into a local variable.
`default CodeBuilder`
`athrow()`
Generates an instruction to throw an exception or error.
`default CodeBuilder`
`baload()`
Generates an instruction to load from a `byte` or `boolean` array.
`default CodeBuilder`
`bastore()`
Generates an instruction to store into a `byte` or `boolean` array.
`default CodeBuilder`
`bipush(int b)`
Generates an instruction pushing an `int` in the range of `byte` (`[-128, 127]`) onto the operand stack.
`default CodeBuilder`
`block(Consumer<CodeBuilder.BlockCodeBuilder> handler)`
Adds a lexical block to the method being built.
`default CodeBuilder`
`branch(Opcode op, Label target)`
Generates a branch instruction.
`default CodeBuilder`
`caload()`
Generates an instruction to load from a `char` array.
`default CodeBuilder`
`castore()`
Generates an instruction to store into a `char` array.
`default CodeBuilder`
`characterRange(Label startScope, Label endScope, int characterRangeStart, int characterRangeEnd, int flags)`
Declares a character range entry.
`default CodeBuilder`
`checkcast(ClassEntry type)`
Generates an instruction to check whether an object is of the given type, throwing a `ClassCastException` if the check fails.
`default CodeBuilder`
`checkcast(ClassDesc type)`
Generates an instruction to check whether an object is of the given type, throwing a `ClassCastException` if the check fails.
`default CodeBuilder`
`conversion(TypeKind fromType, TypeKind toType)`
Generates instruction(s) to convert `fromType` to `toType`.
`default CodeBuilder`
`d2f()`
Generates an instruction to convert a `double` into a `float`.
`default CodeBuilder`
`d2i()`
Generates an instruction to convert a `double` into an `int`.
`default CodeBuilder`
`d2l()`
Generates an instruction to convert a `double` into a `long`.
`default CodeBuilder`
`dadd()`
Generates an instruction to add two `doubles`.
`default CodeBuilder`
`daload()`
Generates an instruction to load from a `double` array.
`default CodeBuilder`
`dastore()`
Generates an instruction to store into a `double` array.
`default CodeBuilder`
`dcmpg()`
Generates an instruction to compare two `doubles`, producing `1` if any operand is `NaN`.
`default CodeBuilder`
`dcmpl()`
Generates an instruction to compare two `doubles`, producing `-1` if any operand is `NaN`.
`default CodeBuilder`
`dconst_0()`
Generates an instruction pushing `double` constant 0 onto the operand stack.
`default CodeBuilder`
`dconst_1()`
Generates an instruction pushing `double` constant 1 onto the operand stack.
`default CodeBuilder`
`ddiv()`
Generates an instruction to divide `doubles`.
`default CodeBuilder`
`dload(int slot)`
Generates an instruction to load a `double` from a local variable.
`default CodeBuilder`
`dmul()`
Generates an instruction to multiply `doubles`.
`default CodeBuilder`
`dneg()`
Generates an instruction to negate a `double`.
`default CodeBuilder`
`drem()`
Generates an instruction to calculate `double` remainder.
`default CodeBuilder`
`dreturn()`
Generates an instruction to return a `double` from this method.
`default CodeBuilder`
`dstore(int slot)`
Generates an instruction to store a `double` into a local variable.
`default CodeBuilder`
`dsub()`
Generates an instruction to subtract `doubles`.
`default CodeBuilder`
`dup()`
Generates an instruction to duplicate the top operand stack value.
`default CodeBuilder`
`dup_x1()`
Generates an instruction to duplicate the top operand stack value and insert two values down.
`default CodeBuilder`
`dup_x2()`
Generates an instruction to duplicate the top operand stack value and insert two or three values down.
`default CodeBuilder`
`dup2()`
Generates an instruction to duplicate the top one or two operand stack value.
`default CodeBuilder`
`dup2_x1()`
Generates an instruction to duplicate the top one or two operand stack values and insert two or three values down.
`default CodeBuilder`
`dup2_x2()`
Generates an instruction to duplicate the top one or two operand stack values and insert two, three, or four values down.
`Label`
`endLabel()`
Returns the label associated with the end of the current block.
`default CodeBuilder`
`exceptionCatch(Label start, Label end, Label handler, ClassEntry catchType)`
Declares an exception table entry.
`default CodeBuilder`
`exceptionCatch(Label start, Label end, Label handler, ClassDesc catchType)`
Declares an exception table entry.
`default CodeBuilder`
`exceptionCatch(Label start, Label end, Label handler, Optional<ClassEntry> catchType)`
Declares an exception table entry.
`default CodeBuilder`
`exceptionCatchAll(Label start, Label end, Label handler)`
Declares an exception table entry catching all exceptions and errors.
`default CodeBuilder`
`f2d()`
Generates an instruction to convert a `float` into a `double`.
`default CodeBuilder`
`f2i()`
Generates an instruction to convert a `float` into an `int`.
`default CodeBuilder`
`f2l()`
Generates an instruction to convert a `float` into a `long`.
`default CodeBuilder`
`fadd()`
Generates an instruction to add two `floats`.
`default CodeBuilder`
`faload()`
Generates an instruction to load from a `float` array.
`default CodeBuilder`
`fastore()`
Generates an instruction to store into a `float` array.
`default CodeBuilder`
`fcmpg()`
Generates an instruction to compare `floats`, producing `1` if any operand is `NaN`.
`default CodeBuilder`
`fcmpl()`
Generates an instruction to compare `floats`, producing `-1` if any operand is `NaN`.
`default CodeBuilder`
`fconst_0()`
Generates an instruction pushing `float` constant 0 onto the operand stack.
`default CodeBuilder`
`fconst_1()`
Generates an instruction pushing `float` constant 1 onto the operand stack.
`default CodeBuilder`
`fconst_2()`
Generates an instruction pushing `float` constant 2 onto the operand stack.
`default CodeBuilder`
`fdiv()`
Generates an instruction to divide `floats`.
`default CodeBuilder`
`fieldAccess(Opcode opcode, FieldRefEntry ref)`
Generates an instruction to access a field.
`default CodeBuilder`
`fieldAccess(Opcode opcode, ClassDesc owner, String name, ClassDesc type)`
Generates an instruction to access a field.
`default CodeBuilder`
`fload(int slot)`
Generates an instruction to load a `float` from a local variable.
`default CodeBuilder`
`fmul()`
Generates an instruction to multiply `floats`.
`default CodeBuilder`
`fneg()`
Generates an instruction to negate a `float`.
`default CodeBuilder`
`frem()`
Generates an instruction to calculate `floats` remainder.
`default CodeBuilder`
`freturn()`
Generates an instruction to return a `float` from this method.
`default CodeBuilder`
`fstore(int slot)`
Generates an instruction to store a `float` into a local variable.
`default CodeBuilder`
`fsub()`
Generates an instruction to subtract `floats`.
`default CodeBuilder`
`getfield(FieldRefEntry ref)`
Generates an instruction to fetch field from an object.
`default CodeBuilder`
`getfield(ClassDesc owner, String name, ClassDesc type)`
Generates an instruction to fetch field from an object.
`default CodeBuilder`
`getstatic(FieldRefEntry ref)`
Generates an instruction to get static field from a class or interface.
`default CodeBuilder`
`getstatic(ClassDesc owner, String name, ClassDesc type)`
Generates an instruction to get static field from a class or interface.
`default CodeBuilder`
`goto_(Label target)`
Generates an instruction to branch always.
`default CodeBuilder`
`goto_w(Label target)`
Generates an instruction to branch always with wide index.
`default CodeBuilder`
`i2b()`
Generates an instruction to truncate an `int` into the range of `byte` and sign-extend it.
`default CodeBuilder`
`i2c()`
Generates an instruction to truncate an `int` into the range of `char` and zero-extend it.
`default CodeBuilder`
`i2d()`
Generates an instruction to convert an `int` into a `double`.
`default CodeBuilder`
`i2f()`
Generates an instruction to convert an `int` into a `float`.
`default CodeBuilder`
`i2l()`
Generates an instruction to convert an `int` into a `long`.
`default CodeBuilder`
`i2s()`
Generates an instruction to truncate an `int` into the range of `short` and sign-extend it.
`default CodeBuilder`
`iadd()`
Generates an instruction to add two `ints`.
`default CodeBuilder`
`iaload()`
Generates an instruction to load from an `int` array.
`default CodeBuilder`
`iand()`
Generates an instruction to calculate bitwise AND of `ints`, also used for `boolean` AND.
`default CodeBuilder`
`iastore()`
Generates an instruction to store into an `int` array.
`default CodeBuilder`
`iconst_0()`
Generates an instruction pushing `int` constant 0 onto the operand stack.
`default CodeBuilder`
`iconst_1()`
Generates an instruction pushing `int` constant 1 onto the operand stack.
`default CodeBuilder`
`iconst_2()`
Generates an instruction pushing `int` constant 2 onto the operand stack.
`default CodeBuilder`
`iconst_3()`
Generates an instruction pushing `int` constant 3 onto the operand stack.
`default CodeBuilder`
`iconst_4()`
Generates an instruction pushing `int` constant 4 onto the operand stack.
`default CodeBuilder`
`iconst_5()`
Generates an instruction pushing `int` constant 5 onto the operand stack.
`default CodeBuilder`
`iconst_m1()`
Generates an instruction pushing `int` constant -1 onto the operand stack.
`default CodeBuilder`
`idiv()`
Generates an instruction to divide `ints`.
`default CodeBuilder`
`if_acmpeq(Label target)`
Generates an instruction to branch if `reference` comparison `operand1 == operand2` succeeds.
`default CodeBuilder`
`if_acmpne(Label target)`
Generates an instruction to branch if `reference` comparison `operand1 != operand2` succeeds.
`default CodeBuilder`
`if_icmpeq(Label target)`
Generates an instruction to branch if `int` comparison `operand1 == operand2` succeeds.
`default CodeBuilder`
`if_icmpge(Label target)`
Generates an instruction to branch if `int` comparison `operand1 >= operand2` succeeds.
`default CodeBuilder`
`if_icmpgt(Label target)`
Generates an instruction to branch if `int` comparison `operand1 > operand2` succeeds.
`default CodeBuilder`
`if_icmple(Label target)`
Generates an instruction to branch if `int` comparison `operand1 <= operand2` succeeds.
`default CodeBuilder`
`if_icmplt(Label target)`
Generates an instruction to branch if `int` comparison `operand1 < operand2` succeeds.
`default CodeBuilder`
`if_icmpne(Label target)`
Generates an instruction to branch if `int` comparison `operand1 != operand2` succeeds.
`default CodeBuilder`
`ifeq(Label target)`
Generates an instruction to branch if `int` comparison with zero `== 0` succeeds.
`default CodeBuilder`
`ifge(Label target)`
Generates an instruction to branch if `int` comparison with zero `>= 0` succeeds.
`default CodeBuilder`
`ifgt(Label target)`
Generates an instruction to branch if `int` comparison with zero `> 0` succeeds.
`default CodeBuilder`
`ifle(Label target)`
Generates an instruction to branch if `int` comparison with zero `<= 0` succeeds.
`default CodeBuilder`
`iflt(Label target)`
Generates an instruction to branch if `int` comparison with zero `< 0` succeeds.
`default CodeBuilder`
`ifne(Label target)`
Generates an instruction to branch if `int` comparison with zero `!= 0` succeeds.
`default CodeBuilder`
`ifnonnull(Label target)`
Generates an instruction to branch if `reference` is not `null`.
`default CodeBuilder`
`ifnull(Label target)`
Generates an instruction to branch if `reference` is `null`.
`default CodeBuilder`
`ifThen(Opcode opcode, Consumer<CodeBuilder.BlockCodeBuilder> thenHandler)`
Adds an "if-then" block that is conditional on the value(s) on top of the operand stack in accordance with the given opcode.
`default CodeBuilder`
`ifThen(Consumer<CodeBuilder.BlockCodeBuilder> thenHandler)`
Adds an "if-then" block that is conditional on the `boolean` value on top of the operand stack.
`default CodeBuilder`
`ifThenElse(Opcode opcode, Consumer<CodeBuilder.BlockCodeBuilder> thenHandler, Consumer<CodeBuilder.BlockCodeBuilder> elseHandler)`
Adds an "if-then-else" block that is conditional on the value(s) on top of the operand stack in accordance with the given opcode.
`default CodeBuilder`
`ifThenElse(Consumer<CodeBuilder.BlockCodeBuilder> thenHandler, Consumer<CodeBuilder.BlockCodeBuilder> elseHandler)`
Adds an "if-then-else" block that is conditional on the `boolean` value on top of the operand stack.
`default CodeBuilder`
`iinc(int slot, int val)`
Generates an instruction to increment an `int` local variable by a constant.
`default CodeBuilder`
`iload(int slot)`
Generates an instruction to load an `int` from a local variable.
`default CodeBuilder`
`imul()`
Generates an instruction to multiply `ints`.
`default CodeBuilder`
`ineg()`
Generates an instruction to negate an `int`.
`default CodeBuilder`
`instanceOf(ClassEntry target)`
Generates an instruction to determine if an object is of the given type, producing a `boolean` result on the operand stack.
`default CodeBuilder`
`instanceOf(ClassDesc target)`
Generates an instruction to determine if an object is of the given type, producing a `boolean` result on the operand stack.
`default CodeBuilder`
`invoke(Opcode opcode, MemberRefEntry ref)`
Generates an instruction to invoke a method.
`default CodeBuilder`
`invoke(Opcode opcode, ClassDesc owner, String name, MethodTypeDesc desc, boolean isInterface)`
Generates an instruction to invoke a method.
`default CodeBuilder`
`invokedynamic(InvokeDynamicEntry ref)`
Generates an instruction to invoke a dynamically-computed call site.
`default CodeBuilder`
`invokedynamic(DynamicCallSiteDesc ref)`
Generates an instruction to invoke a dynamically-computed call site.
`default CodeBuilder`
`invokeinterface(InterfaceMethodRefEntry ref)`
Generates an instruction to invoke an interface method.
`default CodeBuilder`
`invokeinterface(ClassDesc owner, String name, MethodTypeDesc type)`
Generates an instruction to invoke an interface method.
`default CodeBuilder`
`invokespecial(InterfaceMethodRefEntry ref)`
Generates an instruction to invoke an instance method in an interface; direct invocation of methods of the current class and its supertypes.
`default CodeBuilder`
`invokespecial(MethodRefEntry ref)`
Generates an instruction to invoke an instance method in a class; direct invocation of instance initialization methods and methods of the current class and its supertypes.
`default CodeBuilder`
`invokespecial(ClassDesc owner, String name, MethodTypeDesc type)`
Generates an instruction to invoke an instance method in a class; direct invocation of instance initialization methods and methods of the current class and its supertypes.
`default CodeBuilder`
`invokespecial(ClassDesc owner, String name, MethodTypeDesc type, boolean isInterface)`
Generates an instruction to invoke an instance method; direct invocation of instance initialization methods and methods of the current class and its supertypes.
`default CodeBuilder`
`invokestatic(InterfaceMethodRefEntry ref)`
Generates an instruction to invoke a class (static) method of an interface.
`default CodeBuilder`
`invokestatic(MethodRefEntry ref)`
Generates an instruction to invoke a class (static) method of a class.
`default CodeBuilder`
`invokestatic(ClassDesc owner, String name, MethodTypeDesc type)`
Generates an instruction to invoke a class (static) method of a class.
`default CodeBuilder`
`invokestatic(ClassDesc owner, String name, MethodTypeDesc type, boolean isInterface)`
Generates an instruction to invoke a class (static) method.
`default CodeBuilder`
`invokevirtual(MethodRefEntry ref)`
Generates an instruction to invoke an instance method; dispatch based on class.
`default CodeBuilder`
`invokevirtual(ClassDesc owner, String name, MethodTypeDesc type)`
Generates an instruction to invoke an instance method; dispatch based on class.
`default CodeBuilder`
`ior()`
Generates an instruction to calculate bitwise OR of `ints`, also used for `boolean` OR.
`default CodeBuilder`
`irem()`
Generates an instruction to calculate `ints` remainder.
`default CodeBuilder`
`ireturn()`
Generates an instruction to return an `int` from this method.
`default CodeBuilder`
`ishl()`
Generates an instruction to shift an `int` left.
`default CodeBuilder`
`ishr()`
Generates an instruction to shift an `int` right.
`default CodeBuilder`
`istore(int slot)`
Generates an instruction to store an `int` into a local variable.
`default CodeBuilder`
`isub()`
Generates an instruction to subtract `ints`.
`default CodeBuilder`
`iushr()`
Generates an instruction to logical shift an `int` right.
`default CodeBuilder`
`ixor()`
Generates an instruction to calculate bitwise XOR of `ints`.
`default CodeBuilder`
`l2d()`
Generates an instruction to convert a `long` into a `double`.
`default CodeBuilder`
`l2f()`
Generates an instruction to convert a `long` into a `float`.
`default CodeBuilder`
`l2i()`
Generates an instruction to convert a `long` into an `int`.
`default CodeBuilder`
`labelBinding(Label label)`
Binds a label to the current position.
`default CodeBuilder`
`ladd()`
Generates an instruction to add two `longs`.
`default CodeBuilder`
`laload()`
Generates an instruction to load from a `long` array.
`default CodeBuilder`
`land()`
Generates an instruction to calculate bitwise AND of `longs`.
`default CodeBuilder`
`lastore()`
Generates an instruction to store into a `long` array.
`default CodeBuilder`
`lcmp()`
Generates an instruction to compare `longs`.
`default CodeBuilder`
`lconst_0()`
Generates an instruction pushing `long` constant 0 onto the operand stack.
`default CodeBuilder`
`lconst_1()`
Generates an instruction pushing `long` constant 1 onto the operand stack.
`default CodeBuilder`
`ldc(LoadableConstantEntry entry)`
Generates an instruction pushing an item from the run-time constant pool onto the operand stack.
`default CodeBuilder`
`ldc(ConstantDesc value)`
Generates an instruction pushing an item from the run-time constant pool onto the operand stack.
`default CodeBuilder`
`ldiv()`
Generates an instruction to divide `longs`.
`default CodeBuilder`
`lineNumber(int line)`
Declares a source line number beginning at the current position.
`default CodeBuilder`
`lload(int slot)`
Generates an instruction to load a `long` from a local variable.
`default CodeBuilder`
`lmul()`
Generates an instruction to multiply `longs`.
`default CodeBuilder`
`lneg()`
Generates an instruction to negate a `long`.
`default CodeBuilder`
`loadConstant(double value)`
Generates an instruction pushing a constant `double` value onto the operand stack.
`default CodeBuilder`
`loadConstant(float value)`
Generates an instruction pushing a constant `float` value onto the operand stack.
`default CodeBuilder`
`loadConstant(int value)`
Generates an instruction pushing a constant `int` value onto the operand stack.
`default CodeBuilder`
`loadConstant(long value)`
Generates an instruction pushing a constant `long` value onto the operand stack.
`default CodeBuilder`
`loadConstant(ConstantDesc value)`
Generates an instruction pushing a constant onto the operand stack.
`default CodeBuilder`
`loadLocal(TypeKind tk, int slot)`
Generates an instruction to load a value from a local variable.
`default CodeBuilder`
`localVariable(int slot, Utf8Entry nameEntry, Utf8Entry descriptorEntry, Label startScope, Label endScope)`
Declares a local variable entry.
`default CodeBuilder`
`localVariable(int slot, String name, ClassDesc descriptor, Label startScope, Label endScope)`
Declares a local variable entry.
`default CodeBuilder`
`localVariableType(int slot, Utf8Entry nameEntry, Utf8Entry signatureEntry, Label startScope, Label endScope)`
Declares a local variable type entry.
`default CodeBuilder`
`localVariableType(int slot, String name, Signature signature, Label startScope, Label endScope)`
Declares a local variable type entry.
`default CodeBuilder`
`lookupswitch(Label defaultTarget, List<SwitchCase> cases)`
Generates an instruction to access a jump table by key match and jump.
`default CodeBuilder`
`lor()`
Generates an instruction to calculate bitwise OR of `longs`.
`default CodeBuilder`
`lrem()`
Generates an instruction to calculate `longs` remainder.
`default CodeBuilder`
`lreturn()`
Generates an instruction to return a `long` from this method.
`default CodeBuilder`
`lshl()`
Generates an instruction to shift a `long` left.
`default CodeBuilder`
`lshr()`
Generates an instruction to shift a `long` right.
`default CodeBuilder`
`lstore(int slot)`
Generates an instruction to store a `long` into a local variable.
`default CodeBuilder`
`lsub()`
Generates an instruction to subtract `longs`.
`default CodeBuilder`
`lushr()`
Generates an instruction to logical shift a `long` right.
`default CodeBuilder`
`lxor()`
Generates an instruction to calculate bitwise XOR of `longs`.
`default CodeBuilder`
`monitorenter()`
Generates an instruction to enter monitor for an object.
`default CodeBuilder`
`monitorexit()`
Generates an instruction to exit monitor for an object.
`default CodeBuilder`
`multianewarray(ClassEntry array, int dims)`
Generates an instruction to create a new multidimensional array.
`default CodeBuilder`
`multianewarray(ClassDesc array, int dims)`
Generates an instruction to create a new multidimensional array.
`default CodeBuilder`
`new_(ClassEntry clazz)`
Generates an instruction to create a new object.
`default CodeBuilder`
`new_(ClassDesc clazz)`
Generates an instruction to create a new object.
`default CodeBuilder`
`newarray(TypeKind typeKind)`
Generates an instruction to create a new array of a primitive type.
`default Label`
`newBoundLabel()`
Creates a new label bound at the current position.
`Label`
`newLabel()`
Returns a fresh unbound label.
`default CodeBuilder`
`nop()`
Generates a do-nothing instruction.
`int`
`parameterSlot(int paramNo)`
Returns the local variable slot associated with the specified parameter.
`default CodeBuilder`
`pop()`
Generates an instruction to pop the top operand stack value.
`default CodeBuilder`
`pop2()`
Generates an instruction to pop the top one or two operand stack values.
`default CodeBuilder`
`putfield(FieldRefEntry ref)`
Generates an instruction to set field in an object.
`default CodeBuilder`
`putfield(ClassDesc owner, String name, ClassDesc type)`
Generates an instruction to set field in an object.
`default CodeBuilder`
`putstatic(FieldRefEntry ref)`
Generates an instruction to set static field in a class.
`default CodeBuilder`
`putstatic(ClassDesc owner, String name, ClassDesc type)`
Generates an instruction to set static field in a class.
`int`
`receiverSlot()`
Returns the local variable slot associated with the receiver.
`default CodeBuilder`
`return_()`
Generates an instruction to return `void` from this method.
`default CodeBuilder`
`return_(TypeKind tk)`
Generates a return instruction.
`default CodeBuilder`
`saload()`
Generates an instruction to load from a `short` array.
`default CodeBuilder`
`sastore()`
Generates an instruction to store into a `short` array.
`default CodeBuilder`
`sipush(int s)`
Generates an instruction pushing an `int` in the range of `short`, `[-32768, 32767]`, onto the operand stack.
`Label`
`startLabel()`
Returns the label associated with the beginning of the current block.
`default CodeBuilder`
`storeLocal(TypeKind tk, int slot)`
Generates an instruction to store a value to a local variable.
`default CodeBuilder`
`swap()`
Generates an instruction to swap the top two operand stack values.
`default CodeBuilder`
`tableswitch(int low, int high, Label defaultTarget, List<SwitchCase> cases)`
Generates an instruction to access a jump table by index and jump.
`default CodeBuilder`
`tableswitch(Label defaultTarget, List<SwitchCase> cases)`
Generates an instruction to access a jump table by index and jump.
`default CodeBuilder`
`transforming(CodeTransform transform, Consumer<CodeBuilder> handler)`
Apply a transform to the code built by a handler, directing results to this builder.
`default CodeBuilder`
`trying(Consumer<CodeBuilder.BlockCodeBuilder> tryHandler, Consumer<CodeBuilder.CatchBuilder> catchesHandler)`
Adds a "try-catch" block comprising one try block and zero or more catch blocks.

### Methods declared in interface Consumer

`andThen`
Modifier and Type
Method
Description
`default Consumer<CodeElement>`
`andThen(Consumer<? super CodeElement> after)`
Returns a composed `Consumer` that performs, in sequence, this operation followed by the `after` operation.

## Method Details

### breakLabel

Label breakLabel()
Returns the label locating where control is passed back to the parent block. A branch to this label "break"'s out of the current block.

If the last instruction in this block does not lead to the break label, Class-File API may append instructions to target the "break" label to the built block.

Returns:
  the label locating where control is passed back to the parent block