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
Author:
  Cédric Champeau

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