This interface provides a number of methods that are called by a Subscription in order to interact with an Agent or an Agent's managed data.
The purpose of this interface is primarily about removing a circular dependency between Subscription and Agent so the Subscription doesn't invoke these methods on an Agent instance, rather it invokes them on a SubscribeableAgent instance.
The following diagram illustrates the interactions between the Agent, Subscription and SubscribableAgent.
@author Fraser Adams