Class AbstractInterruptibleASTTransformation

    • Field Detail

      • checkOnMethodStart

        protected boolean checkOnMethodStart
      • applyToAllClasses

        protected boolean applyToAllClasses
      • applyToAllMembers

        protected boolean applyToAllMembers
      • thrownExceptionType

        protected ClassNode thrownExceptionType
    • Constructor Detail

      • AbstractInterruptibleASTTransformation

        public AbstractInterruptibleASTTransformation()
    • Method Detail

      • createCondition

        protected abstract Expression createCondition()
        Subclasses should implement this method to set the condition of the interruption statement
      • getErrorMessage

        protected abstract String getErrorMessage()
        Subclasses should implement this method to provide good error resolution.
      • setupTransform

        protected void setupTransform​(AnnotationNode node)
      • visit

        public void visit​(ASTNode[] nodes,
                          SourceUnit source)
        Description copied from interface: ASTTransformation
        The method is invoked when an AST Transformation is active. For local transformations, it is invoked once each time the local annotation is encountered. For global transformations, it is invoked once for every source unit, which is typically a source file.
        Specified by:
        visit in interface ASTTransformation
        Parameters:
        nodes - The ASTnodes when the call was triggered. Element 0 is the AnnotationNode that triggered this annotation to be activated. Element 1 is the AnnotatedNode decorated, such as a MethodNode or ClassNode. For global transformations it is usually safe to ignore this parameter.
        source - The source unit being compiled. The source unit may contain several classes. For global transformations, information about the AST can be retrieved from this object.
      • getBooleanAnnotationParameter

        protected static boolean getBooleanAnnotationParameter​(AnnotationNode node,
                                                               String parameterName,
                                                               boolean defaultValue)
      • internalError

        protected static void internalError​(String message)
      • createInterruptStatement

        protected Statement createInterruptStatement()
        Returns:
        Returns the interruption check statement.
      • wrapBlock

        protected final Statement wrapBlock​(Statement statement)
        Takes a statement and wraps it into a block statement which first element is the interruption check statement.
        Parameters:
        statement - the statement to be wrapped
        Returns:
        a block statement which first element is for checking interruption, and the second one the statement to be wrapped.