The GroupWise environment (both client and data-access components) binds to the registered C3PO providers as the support mechanism for custom data types. The data types are implemented via the data store in GroupWise.
Figure 1-1 C3PO Object Class Hierarchy
As illustrated, each C3PO data type is associated with a specific object class designation. These object classes are hierarchical in nature, representing a subtyping relationship. All behavior of an object, whether predefined, subclassed, or a newly instantiated type, is fully inheritable. For example, new methods introduced for new objects in the data store are fully inherited by any subtyped object.
Aggregations, delegation, and use of ancestor methods for implementation are fully supported. This is achieved by each C3PO writer having access to the instances of the C3POServers for supertypes. The C3PO writer is thereby free to invoke ancestor methods for any reason, such as delegation, aggregation, and behavior modification.