Package org.codehaus.groovy.transform.trait

# Class TraitComposer

java.lang.Object
org.codehaus.groovy.transform.trait.TraitComposer

    public abstract class TraitComposer
    extends java.lang.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
  Modifier and Type | Field | Description
  --- | --- | ---
  `static ClassNode` | `COMPILESTATIC_CLASSNODE` |

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `TraitComposer()` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `static void` | `doExtendTraits​(ClassNode cNode, SourceUnit unit, 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.

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

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

- ## Field Details

  - ### COMPILESTATIC_CLASSNODE

    public static final ClassNode COMPILESTATIC_CLASSNODE

- ## Constructor Details

  - ### TraitComposer

    public TraitComposer()

- ## Method Details

  - ### doExtendTraits

    public static void doExtendTraits​(ClassNode cNode, SourceUnit unit, 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.
    Parameters:
      `cNode` - a class node
      `unit` - the source unit