Pattern: Mediator, java flavour