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`
  Deprecated.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TraitComposer()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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.

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

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

- ## Field Details

  - ### COMPILESTATIC_CLASSNODE

    @Deprecated(since="6.0.0") public static final ClassNode COMPILESTATIC_CLASSNODE
    Deprecated.
    Deprecated alias for `StaticCompilationVisitor.COMPILESTATIC_CLASSNODE`.

- ## Constructor Details

  - ### TraitComposer

    public TraitComposer()

- ## Method Details

  - ### doExtendTraits

    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.