docs: public static AggregationIterator create(final List<Span> spans,
        final long start_time,
        final long end_time,
        final Aggregator aggregator,
        final Interpolation method,
        final DownsamplingSpecification downsampler,
        final long query_start,
        final long query_end,
        final boolean rate,
        final RateOptions rate_options) {
      final int size = spans.size();
      final SeekableView[] iterators = new SeekableView[size];
      for (int i = 0; i < size; i++) {
        SeekableView it;
        if (downsampler == null || 
            downsampler == DownsamplingSpecification.NO_DOWNSAMPLER) {
          it = spans.get(i).spanIterator();
        } else {
          it = spans.get(i).downsampler(start_time, end_time, downsampler, 
              query_start, query_end);
        }
        if (rate) {
          it = new RateSpan(it, rate_options);
        }
        iterators[i] = it;
      }
      return new AggregationIterator(iterators, start_time, end_time, aggregator,
      method, rate);  
    }