Package: org.codehaus.groovy.transform.tailrec

## [Java] Class InWhileLoopWrapper

- org.codehaus.groovy.transform.tailrec.InWhileLoopWrapper

-     public class InWhileLoopWrapper
      extends Object

  Wrap the body of a method in a while loop, nested in a try-catch. This is the first step in making a tail recursive method iterative.

  There are two ways to invoke the next iteration step:

  1. "continue _RECUR_HERE_" is used by recursive calls outside of closures
  2. "throw LOOP_EXCEPTION" is used by recursive calls within closures b/c you cannot invoke "continue" from there

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static GotoRecurHereException` | `LOOP_EXCEPTION` | Exception instance thrown from closures to restart the generated loop.
    `static String` | `LOOP_LABEL` | Label targeted by synthesized `continue` statements.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public void` | `wrap(MethodNode method)` Wraps the supplied method body in the loop structure used by the tail-recursion transform.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### public static final GotoRecurHereException LOOP_EXCEPTION

      Exception instance thrown from closures to restart the generated loop.

    - #### public static final String LOOP_LABEL

      Label targeted by synthesized `continue` statements.

  - ### Method Detail

    - #### public void wrap(MethodNode method)

      Wraps the supplied method body in the loop structure used by the tail-recursion transform.

      Parameters:
        `method` - the method to rewrite