def etag(cls, request, *args, **kwargs):
        '''Class method to generate an ETag for use with
        conditional processing; calls :meth:`datastream_etag` with
        class configuration.'''
        pid = kwargs[cls.pid_url_kwarg]
        date = kwargs.get(cls.as_of_date_url_kwarg, None)
        return datastream_etag(
            request, pid, cls.datastream_id,
            type=cls.object_type, repo=cls.repository_class(request=request),
            accept_range_request=cls.accept_range_request, as_of_date=date)