Package: org.grails.transaction.transform

## [Groovy] Class TransactionalTransform

- org.grails.transaction.transform.TransactionalTransform

- All Implemented Interfaces and Traits:
    org.codehaus.groovy.transform.ASTTransformation

      @groovy.transform.CompileStatic
      @org.codehaus.groovy.transform.GroovyASTTransformation(phase = CompilePhase.CANONICALIZATION)
      class TransactionalTransform
      extends java.lang.Object

  This AST transform reads the Transactional annotation and transforms method calls by wrapping the body of the method in an execution of GrailsTransactionTemplate.

  Authors:
    Graeme Rocher
  Since:
    2.3

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static org.codehaus.groovy.ast.ClassNode` | `COMPILE_STATIC_TYPE` |
    `static org.codehaus.groovy.ast.ClassNode` | `MY_TYPE` |
    `static java.lang.String` | `PROPERTY_DATA_SOURCE` |
    `static org.codehaus.groovy.ast.ClassNode` | `TYPE_CHECKED_TYPE` |

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `protected java.lang.Object` | `applyTransactionalAttributeSettings(org.codehaus.groovy.ast.AnnotationNode annotationNode, org.codehaus.groovy.ast.expr.VariableExpression transactionAttributeVar, org.codehaus.groovy.ast.stmt.BlockStatement methodBody)`
    `` | `protected org.codehaus.groovy.ast.stmt.Statement` | `createTransactionalMethodCallBody(org.codehaus.groovy.ast.Parameter transactionStatusParam, org.codehaus.groovy.ast.expr.MethodCallExpression originalMethodCall)`
    `` | `org.codehaus.groovy.ast.ClassNode` | `getAnnotationClassNode(java.lang.String annotationName)`
    `` | `protected java.lang.String` | `getTransactionTemplateMethodName()`
    `` | `static boolean` | `isSpockTest(org.codehaus.groovy.ast.ClassNode classNode)`
    `` | `protected boolean` | `isTransactionAnnotation(org.codehaus.groovy.ast.AnnotationNode annotationNode)`
    `` | `protected org.codehaus.groovy.ast.expr.MethodCallExpression` | `moveOriginalCodeToNewMethod(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode methodNode)`
    `` | `void` | `visit(org.codehaus.groovy.ast.ASTNode[] astNodes, org.codehaus.groovy.control.SourceUnit source)`
    `` | `protected void` | `weaveTransactionManagerAware(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode declaringClassNode)`
    `` | `void` | `weaveTransactionalBehavior(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.AnnotationNode annotationNode)`
    `` | `protected void` | `weaveTransactionalMethod(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.AnnotationNode annotationNode, org.codehaus.groovy.ast.MethodNode methodNode, java.lang.String executeMethodName = getTransactionTemplateMethodName()`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class java.lang.Object` | `java.lang.Object#wait(long, int), java.lang.Object#wait(long), 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()`

- - ### Field Detail

    - #### public static final org.codehaus.groovy.ast.ClassNode COMPILE_STATIC_TYPE

    - #### public static final org.codehaus.groovy.ast.ClassNode MY_TYPE

    - #### public static final java.lang.String PROPERTY_DATA_SOURCE

    - #### public static final org.codehaus.groovy.ast.ClassNode TYPE_CHECKED_TYPE

  - ### Method Detail

    - #### protected java.lang.Object applyTransactionalAttributeSettings(org.codehaus.groovy.ast.AnnotationNode annotationNode, org.codehaus.groovy.ast.expr.VariableExpression transactionAttributeVar, org.codehaus.groovy.ast.stmt.BlockStatement methodBody)

    - #### protected org.codehaus.groovy.ast.stmt.Statement createTransactionalMethodCallBody(org.codehaus.groovy.ast.Parameter transactionStatusParam, org.codehaus.groovy.ast.expr.MethodCallExpression originalMethodCall)

    - #### org.codehaus.groovy.ast.ClassNode getAnnotationClassNode(java.lang.String annotationName)

    - #### protected java.lang.String getTransactionTemplateMethodName()

    - #### static boolean isSpockTest(org.codehaus.groovy.ast.ClassNode classNode)

    - #### protected boolean isTransactionAnnotation(org.codehaus.groovy.ast.AnnotationNode annotationNode)

    - #### protected org.codehaus.groovy.ast.expr.MethodCallExpression moveOriginalCodeToNewMethod(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode methodNode)

    - #### @java.lang.Override void visit(org.codehaus.groovy.ast.ASTNode[] astNodes, org.codehaus.groovy.control.SourceUnit source)

    - #### protected void weaveTransactionManagerAware(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode declaringClassNode)

    - #### void weaveTransactionalBehavior(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.AnnotationNode annotationNode)

    - #### protected void weaveTransactionalMethod(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.AnnotationNode annotationNode, org.codehaus.groovy.ast.MethodNode methodNode, java.lang.String executeMethodName = getTransactionTemplateMethodName()