Hi folks,
For an example of this have a look at the MultiCore Pipes utility and the PipeWorks demo.
Pipes defines a JunctionMediator which extends Mediator and is used to add ACCEPT_*_PIPE handling. Then there is a LoggingJunctionMediator that extends it adds logging handlers, or defaults to super.handleNotification. Then there is a subclass for the Prattler rss reader module which gets logging and pipe acceptance inherited. You can subclass till the cows come home this way.
Also, you have to deal with enumerating the interests of the entire inheritence tree. So rather than just returning an anonymous array of constants, you call super.listNotificationInterests to get the array of all your ancestors, pust your interests onto the array and return that. QED, no utilities or special math needed.
-=Cliff>