Package org.codehaus.groovy.transform

# Class BuilderASTTransformation

java.lang.Object
org.codehaus.groovy.transform.AbstractASTTransformation
org.codehaus.groovy.transform.BuilderASTTransformation

All Implemented Interfaces:
  `CompilationUnitAware`, `ASTTransformation`, `ErrorCollecting`, `TransformWithPriority`

public class BuilderASTTransformation extends AbstractASTTransformation implements CompilationUnitAware, TransformWithPriority
Handles generation of code for the `Builder` annotation.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `BuilderASTTransformation.AbstractBuilderStrategy`
  Base class for builder generation strategies.
  `static interface`
  `BuilderASTTransformation.BuilderStrategy`
  Strategy interface for builder code generation.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `MY_TYPE_NAME`
  String representation of the @Builder annotation for error reporting.
  `static final ClassNode[]`
  `NO_EXCEPTIONS`
  Empty array of ClassNode for use in method signatures.
  `static final Parameter[]`
  `NO_PARAMS`
  Empty array of Parameter for use in method signatures.

  ### Fields inherited from class org.codehaus.groovy.transform.AbstractASTTransformation

  `RETENTION_CLASSNODE, sourceUnit`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BuilderASTTransformation()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `priority()`
  `void`
  `setCompilationUnit(CompilationUnit unit)`
  Sets the compilation unit currently applying this transformation.
  `void`
  `visit(ASTNode[] nodes, SourceUnit source)`
  The method is invoked when an AST Transformation is active.

  ### Methods inherited from class org.codehaus.groovy.transform.AbstractASTTransformation

  `addError, checkIncludeExcludeUndefinedAware, checkIncludeExcludeUndefinedAware, checkNotInterface, checkPropertyList, checkPropertyList, checkPropertyList, copyAnnotatedNodeAnnotations, copyAnnotatedNodeAnnotations, deemedInternal, deemedInternalName, getAnnotationName, getMemberClassList, getMemberClassValue, getMemberClassValue, getMemberIntValue, getMemberStringList, getMemberStringValue, getMemberStringValue, getMemberValue, hasAnnotation, init, markAsInternal, memberHasValue, shouldSkip, shouldSkip, shouldSkip, shouldSkipOnDescriptorUndefinedAware, shouldSkipUndefinedAware, shouldSkipUndefinedAware, shouldSkipUndefinedAware, tokenize`

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

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

- ## Field Details

  - ### MY_TYPE_NAME

    public static final String MY_TYPE_NAME
    String representation of the @Builder annotation for error reporting.

  - ### NO_EXCEPTIONS

    public static final ClassNode[] NO_EXCEPTIONS
    Empty array of ClassNode for use in method signatures.

  - ### NO_PARAMS

    public static final Parameter[] NO_PARAMS
    Empty array of Parameter for use in method signatures.

- ## Constructor Details

  - ### BuilderASTTransformation

    public BuilderASTTransformation()

- ## Method Details

  - ### priority

    public int priority()
    Specified by:
      `priority` in interface `TransformWithPriority`

  - ### setCompilationUnit

    public void setCompilationUnit(CompilationUnit unit)
    Description copied from interface: `CompilationUnitAware`
    Sets the compilation unit currently applying this transformation.
    Specified by:
      `setCompilationUnit` in interface `CompilationUnitAware`
    Parameters:
      `unit` - the active compilation unit

  - ### 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.