Package: org.codehaus.groovy.transform

## [Groovy] Class ThreadInterruptibleASTTransformation

- org.codehaus.groovy.transform.ThreadInterruptibleASTTransformation

- Allows "interrupt-safe" executions of scripts by adding Thread.currentThread().isInterrupted() checks on loops (for, while, do) and first statement of closures. By default, also adds an interrupt check statement on the beginning of method calls.

  See Also:
    ThreadInterrupt
  Authors:
    Cedric Champeau
    Hamlet D'Arcy
  Since:
    1.8.0

- - Inherited fields
    Fields inherited from class | Fields
    --- | ---
    `class AbstractInterruptibleASTTransformation` | `CHECK_METHOD_START_MEMBER, THROWN_EXCEPTION_TYPE, applyToAllClasses, applyToAllMembers, checkOnMethodStart, source, thrownExceptionType`

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `protected Expression` | `createCondition()`
    `` | `protected String` | `getErrorMessage()`
    `` | `protected ClassNode` | `type()`
    `` | `void` | `visitClosureExpression(ClosureExpression closureExpr)`
    `` | `void` | `visitMethod(MethodNode node)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class AbstractInterruptibleASTTransformation` | `createCondition, createInterruptStatement, getBooleanAnnotationParameter, getClassAnnotationParameter, getErrorMessage, getSourceUnit, internalError, setupTransform, type, visit, visitDoWhileLoop, visitForLoop, visitWhileLoop, wrapBlock`

    `class ClassCodeVisitorSupport`

    `addError, getSourceUnit, visitAnnotations, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCaseStatement, visitCatchStatement, visitClass, visitClassCodeContainer, visitConstructor, visitConstructorOrMethod, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, visitProperty, visitReturnStatement, visitStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitTryCatchFinally, visitWhileLoop`

    `class CodeVisitorSupport`

    `visitArgumentlistExpression, visitArrayExpression, visitAssertStatement, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBlockStatement, visitBooleanExpression, visitBreakStatement, visitBytecodeExpression, visitCaseStatement, visitCastExpression, visitCatchStatement, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitEmptyStatement, visitExpressionStatement, visitFieldExpression, visitForLoop, visitGStringExpression, visitIfElse, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitReturnStatement, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitSwitch, visitSynchronizedStatement, visitTernaryExpression, visitThrowStatement, visitTryCatchFinally, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression, visitWhileLoop`

    `class Object` | `equals, toString, hashCode, getClass, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### protected Expression createCondition()

    - #### protected String getErrorMessage()

    - #### protected ClassNode type()

    - #### @Override void visitClosureExpression(ClosureExpression closureExpr)

    - #### @Override void visitMethod(MethodNode node)