Package: org.codehaus.groovy.transform.trait

## [Java] Class TraitComposer

- org.codehaus.groovy.transform.trait.TraitComposer

-     public abstract class TraitComposer
      extends Object

  This class contains a static utility method doExtendTraits(org.codehaus.groovy.ast.ClassNode, org.codehaus.groovy.control.SourceUnit, org.codehaus.groovy.control.CompilationUnit) aimed at generating code for a classnode implementing a trait.

  Since:
    2.3.0

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static ClassNode` | `COMPILESTATIC_CLASSNODE` | Deprecated alias for StaticCompilationVisitor.COMPILESTATIC_CLASSNODE.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public static void` | `doExtendTraits(ClassNode cn, SourceUnit su, CompilationUnit cu)` Given a class node, if this class node implements a trait, then generate all the appropriate code which delegates calls to the trait.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### @Deprecated(since = "6.0.0")
      public static final ClassNode COMPILESTATIC_CLASSNODE

      Deprecated alias for StaticCompilationVisitor.COMPILESTATIC_CLASSNODE.

      deprecated:

  - ### Method Detail

    - #### public static void doExtendTraits(ClassNode cn, SourceUnit su, CompilationUnit cu)

      Given a class node, if this class node implements a trait, then generate all the appropriate code which delegates calls to the trait. It is safe to call this method on a class node which does not implement a trait.