class PushNotificationService {

    public void send(PushMessage message, String realm) throws PushNotificationException {

        PushNotificationDelegate delegate = getDelegateForRealm(realm);

        if (delegate == null) {
            throw new PushNotificationException("No delegate for supplied realm. Check service exists and init has "
                    + "been called.");
        }

        delegate.send(message);
    }

    @Inject public  PushNotificationService(@Named("frPush") Debug debug,
                                   ConcurrentMap<String, PushNotificationDelegate> pushRealmMap,
                                   ConcurrentMap<String, PushNotificationDelegateFactory> pushFactoryMap,
                                   PushNotificationServiceConfigHelperFactory configHelperFactory,
                                   MessageDispatcherFactory messageDispatcherFactory);

}