Package org.codehaus.groovy.transform.trait

# Class TraitComposer

java.lang.Object
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
  Modifier and Type
  Field
  Description
  `static final 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