Groovy Documentation

## org.codehaus.groovy.transform
[Groovy] Class ThreadInterruptibleASTTransformation

    java.lang.Object
      org.codehaus.groovy.ast.CodeVisitorSupport
          org.codehaus.groovy.ast.ClassCodeVisitorSupport
              org.codehaus.groovy.transform.AbstractInterruptibleASTTransformation
                  org.codehaus.groovy.transform.ThreadInterruptibleASTTransformation

    @GroovyASTTransformation(phase = CompilePhase.CANONICALIZATION)
    class ThreadInterruptibleASTTransformation
    extends AbstractInterruptibleASTTransformation

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.

Authors:
  Cedric Champeau
  Hamlet D'Arcy

See Also:
  ThreadInterrupt

Since:
  1.8.0

Field Summary

Fields inherited from class AbstractInterruptibleASTTransformation
CHECK_METHOD_START_MEMBER, PROPAGATE_TO_COMPILE_UNIT, THROWN_EXCEPTION_TYPE, applyToAllClasses, checkOnMethodStart, source, thrownExceptionType

Method Summary
`protected Expression` | `createCondition()`
`protected java.lang.String` | `getErrorMessage()`
`protected ClassNode` | `type()`
`void` | `visitClosureExpression(ClosureExpression closureExpr)`
`void` | `visitMethod(MethodNode node)`

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

Methods inherited from 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

Methods inherited from 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

Methods inherited from class java.lang.Object
java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()

Method Detail

### createCondition

    protected Expression createCondition()

### getErrorMessage

    protected java.lang.String getErrorMessage()

### type

    protected ClassNode type()

### visitClosureExpression

    @Override
    void visitClosureExpression(ClosureExpression closureExpr)

### visitMethod

    @Override
    void visitMethod(MethodNode node)

Groovy Documentation