| AbstractAnnotationBuilder | 
  | 
| ClassLoaderDelegate | 
 Externalizes the logic for defining which classes will be loaded (and possibly transformed) by the class loader, and
 which will be loaded by the parent class loader. 
 | 
| FieldState | 
  | 
| InheritanceData | 
 Used to track which methods are implemented by a base class, which is often needed when transforming
 a subclass. 
 | 
| InstructionBuilderState | 
 Stores information about the method whose instructions are being constructed, to make it easier
 to share data across multiple instances. 
 | 
| InternalPlasticClassTransformation | 
  | 
| Lockable | 
 An object that can be locked, at which point most of its functionality is disabled. 
 | 
| MethodInvocationBundle | 
 | 
| NameCache | 
 A cache of translations from type names to internal names and descriptors, as well as a cache from MethodDescription
 to method descriptor. 
 | 
| NoopDelegate | 
  | 
| PlasticClassHandleShim | 
 | 
| PlasticClassPool | 
 Responsible for managing a class loader that allows ASM ClassNodes
 to be instantiated as runtime classes. 
 | 
| PrimitiveType | 
Collects together information needed to write code that involves primitive types, including
 moving between wrapper types and primitive values, or extracting a primitive value from
 the  StaticContext.  
 | 
| StaticContext | 
 Stores static context information needed by a transformed PlasticClass; this includes data such as
 injections. 
 | 
| TypeCategory | 
 Defines the two basic kinds of non-primitive, non-array Java types: interfaces and classes. 
 |