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