Record Class MethodContext
java.lang.Object
java.lang.Record
io.micronaut.sourcegen.bytecode.MethodContext
- Record Components:
objectDef- The current object definitionmethodDef- The current method definition.locals- The localslambdaMethods- Lambda methods created by this methodisLambda- Whether this method is a lambdayieldTargets- The switch yield cases being written, innermost lastopenGaps- The gaps opened by the returns and yields being written, innermost last
@Internal
public record MethodContext(@Nullable ObjectDef objectDef, MethodDef methodDef, Map<String, MethodContext.LocalData> locals, List<MethodDef> lambdaMethods, boolean isLambda, Deque<MethodContext.YieldTarget> yieldTargets, List<MethodContext.Gap> openGaps)
extends Record
The statement context.
- Since:
- 1.5
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classThe code a return or a yield writes on its way out of a try or a synchronized statement: from the copy of the finally block, or from past the release of the monitor, to past the instruction that leaves.static final recordThe local data.static final recordA switch yield case being written. -
Constructor Summary
ConstructorsConstructorDescriptionMethodContext(@Nullable ObjectDef objectDef, MethodDef methodDef, boolean isLambda) MethodContext(@Nullable ObjectDef objectDef, MethodDef methodDef, Map<String, MethodContext.LocalData> locals, List<MethodDef> lambdaMethods, boolean isLambda) MethodContext(@Nullable ObjectDef objectDef, MethodDef methodDef, Map<String, MethodContext.LocalData> locals, List<MethodDef> lambdaMethods, boolean isLambda, Deque<MethodContext.YieldTarget> yieldTargets, List<MethodContext.Gap> openGaps) Creates an instance of aMethodContextrecord class. -
Method Summary
Modifier and TypeMethodDescriptionvoidcloseGaps(org.objectweb.asm.commons.GeneratorAdapter generatorAdapter, int from) Closes the gaps opened by a return or a yield, once it has written the instruction that leaves.@Nullable MethodContext.YieldTargetThe switch yield case a return statement contributes its value to, instead of returning from the method.final booleanIndicates whether some other object is "equal to" this one.final inthashCode()Returns a hash code value for this object.booleanisLambda()Returns the value of theisLambdarecord component.Returns the value of thelambdaMethodsrecord component.locals()Returns the value of thelocalsrecord component.Returns the value of themethodDefrecord component.@Nullable ObjectDefReturns the value of theobjectDefrecord component.openGap(org.objectweb.asm.commons.GeneratorAdapter generatorAdapter) Opens a gap at the current position, where a return or a yield writes the cleanup of a statement it leaves.openGaps()Returns the value of theopenGapsrecord component.final StringtoString()Returns a string representation of this record class.Returns the value of theyieldTargetsrecord component.
-
Constructor Details
-
MethodContext
-
MethodContext
-
MethodContext
public MethodContext(@Nullable ObjectDef objectDef, MethodDef methodDef, Map<String, MethodContext.LocalData> locals, List<MethodDef> lambdaMethods, boolean isLambda, Deque<MethodContext.YieldTarget> yieldTargets, List<MethodContext.Gap> openGaps) Creates an instance of aMethodContextrecord class.- Parameters:
objectDef- the value for theobjectDefrecord componentmethodDef- the value for themethodDefrecord componentlocals- the value for thelocalsrecord componentlambdaMethods- the value for thelambdaMethodsrecord componentisLambda- the value for theisLambdarecord componentyieldTargets- the value for theyieldTargetsrecord componentopenGaps- the value for theopenGapsrecord component
-
-
Method Details
-
currentYieldTarget
The switch yield case a return statement contributes its value to, instead of returning from the method.- Returns:
- The innermost yield case being written, or null when a return is a method return
-
openGap
Opens a gap at the current position, where a return or a yield writes the cleanup of a statement it leaves. The return or the yield closes the gap past the instruction that leaves.- Parameters:
generatorAdapter- The adapter- Returns:
- The gap
-
closeGaps
public void closeGaps(org.objectweb.asm.commons.GeneratorAdapter generatorAdapter, int from) Closes the gaps opened by a return or a yield, once it has written the instruction that leaves.- Parameters:
generatorAdapter- The adapterfrom- The number of gaps that were open before the return or the yield
-
toString
-
hashCode
-
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared withObjects::equals(Object,Object); primitive components are compared with thecomparemethod from their corresponding wrapper classes. -
objectDef
-
methodDef
-
locals
-
lambdaMethods
Returns the value of thelambdaMethodsrecord component.- Returns:
- the value of the
lambdaMethodsrecord component
-
isLambda
-
yieldTargets
Returns the value of theyieldTargetsrecord component.- Returns:
- the value of the
yieldTargetsrecord component
-
openGaps
-