CPGEvent Resource
This abstracts the CPG Event Resources used in various activities. The various subclasses of CPGEventResource act as a wrapper around the resource they are derived from and helps with the abstracted properties defined for each CPGEventResource. e.g. CPGCommunicationEvent is a wrapper around the Communication and helps with its EventStatus and basedOn References.
Any direct update to the resource can be done by using update api.
The application users may use appropriate of static factories to create the required CPGEventResources.