docs: protected BundleStreamSource invokeStreamFilters(BundleStreamSource stream) {
      assert (stream != null);
      if(filters == null) {
        return stream;
      }
      // We dynamically switch between streaming and bundle operations.
      MultipleObjectsBundle bundle = null;
      for(ObjectFilter filter : filters) {
        if(filter instanceof StreamFilter) {
          stream = ((StreamFilter) filter).init(bundle != null ? bundle.asStream() : stream);
          bundle = null;
        }
        else {
          bundle = filter.filter(stream != null ? stream.asMultipleObjectsBundle() : bundle);
          stream = null;
        }
      }
      return stream != null ? stream : bundle.asStream();
    }