Package org.apache.groovy.ast.builder

# Class AstBuilderTransformation

java.lang.Object
org.codehaus.groovy.ast.MethodCallTransformation
org.apache.groovy.ast.builder.AstBuilderTransformation

All Implemented Interfaces:
  `ASTTransformation`

public class AstBuilderTransformation extends MethodCallTransformation
Transformation to capture ASTBuilder from code statements.

The AstBuilder "from code" approach is used with a single Closure parameter. This transformation converts the ClosureExpression back into source code and rewrites the AST so that the "from string" builder is invoked on the source. In order for this to work, the closure source must be given a goto label. It is the "from string" approach's responsibility to remove the BlockStatement created by the label.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AstBuilderTransformation()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected GroovyCodeVisitor`
  `getTransformer(ASTNode[] nodes, SourceUnit sourceUnit)`
  Creates the visitor that rewrites `AstBuilder` closure invocations into string-based builder calls.

  ### Methods inherited from class org.codehaus.groovy.ast.MethodCallTransformation

  `visit`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### AstBuilderTransformation

    public AstBuilderTransformation()

- ## Method Details

  - ### getTransformer

    protected GroovyCodeVisitor getTransformer(ASTNode[] nodes, SourceUnit sourceUnit)
    Creates the visitor that rewrites `AstBuilder` closure invocations into string-based builder calls.
    Specified by:
      `getTransformer` in class `MethodCallTransformation`
    Parameters:
      `nodes` - the AST nodes being transformed
      `sourceUnit` - the source unit currently under compilation
    Returns:
      the visitor that performs the rewrite