Gets the composition notification session for the given
        repository.

        arg:    composition_receiver
                (osid.repository.CompositionReceiver): the notification
                callback
        arg:    repository_id (osid.id.Id): the Id of the repository
        arg     proxy (osid.proxy.Proxy): a proxy
        return: (osid.repository.CompositionNotificationSession) - a
                CompositionNotificationSession
        raise:  NotFound - repository_id not found
        raise:  NullArgument - composition_receiver or repository_id is
                null
        raise:  OperationFailed - unable to complete request
        raise:  Unimplemented - supports_composition_notification() or
                supports_visible_federation() is false
        compliance: optional - This method must be implemented if
                    supports_composition_notfication() and
                    supports_visible_federation() are true.

def get_composition_notification_session_for_repository(self, composition_receiver, repository_id, proxy):
        """Gets the composition notification session for the given
        repository.

        arg:    composition_receiver
                (osid.repository.CompositionReceiver): the notification
                callback
        arg:    repository_id (osid.id.Id): the Id of the repository
        arg     proxy (osid.proxy.Proxy): a proxy
        return: (osid.repository.CompositionNotificationSession) - a
                CompositionNotificationSession
        raise:  NotFound - repository_id not found
        raise:  NullArgument - composition_receiver or repository_id is
                null
        raise:  OperationFailed - unable to complete request
        raise:  Unimplemented - supports_composition_notification() or
                supports_visible_federation() is false
        compliance: optional - This method must be implemented if
                    supports_composition_notfication() and
                    supports_visible_federation() are true.

        """
        if composition_receiver is None or repository_id is None:
            raise NullArgument()
        if not self.supports_composition_notification():
            raise Unimplemented()
        try:
            from . import sessions
        except ImportError:
            raise  # OperationFailed()
        proxy = self._convert_proxy(proxy)
        try:
            session = sessions.CompositionNotificationSession(composition_receiver,
                                                              repository_id,
                                                              proxy,
                                                              runtime=self._runtime)
        except AttributeError:
            raise  # OperationFailed()
        return session