Package: org.codehaus.groovy.classgen.asm

## [Java] Class CompileStack.BlockRecorder

- org.codehaus.groovy.classgen.asm.CompileStack.BlockRecorder

-     public static class CompileStack.BlockRecorder
      extends Object

  Records a block for finally or other special handling.

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `Runnable` | `excludedStatement` | Callback used when visiting the block outside its recorded range.
    `LinkedList<LabelRange>` | `ranges` | Label ranges covered by this recorder.

  - ### Constructor Summary

    Constructors
    Constructor and description
    `BlockRecorder()` Creates an empty block recorder.
    `BlockRecorder(Runnable excludedStatement)` Creates a block recorder with an excluded statement.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public void` | `closeRange(org.objectweb.asm.Label end)` Closes the current range at the given label.
    `` | `public void` | `startRange(org.objectweb.asm.Label start)` Starts a new range at the given label.

  - ### Inherited Methods Summary

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

- - ### Field Detail

    - #### public Runnable excludedStatement

      Callback used when visiting the block outside its recorded range.

    - #### public final LinkedList<LabelRange> ranges

      Label ranges covered by this recorder.

  - ### Constructor Detail

    - #### public BlockRecorder()

      Creates an empty block recorder.

    - #### public BlockRecorder(Runnable excludedStatement)

      Creates a block recorder with an excluded statement.

      Parameters:
        `excludedStatement` - the statement to exclude from the block

  - ### Method Detail

    - #### public void closeRange(org.objectweb.asm.Label end)

      Closes the current range at the given label.

      Parameters:
        `end` - the end label

    - #### public void startRange(org.objectweb.asm.Label start)

      Starts a new range at the given label.

      Parameters:
        `start` - the start label