Interfaces
 InterfaceDescription
 IProduct Defines a set of getter / setter methods implemented by Product classes All instances of subclasses which extend Product can only be typed as an IProduct Sub classes of Product can only be accessed via ProductFactory
Classes
 ClassDescription
 ProductFactory Application specific Factory Pattern implementation which defines an API that handles Product subclass instantiation
 ProductFactoryInstantiationError ProductFactory API illegal instantiation Error class
 ProductFactoryType Provides a set of static constants which define legal types in ProductFactory
 ProductFactoryTypeError ProductFactory API illegal type Error class