code: public static <T, I extends ChronoInterval<T>> IntervalTree<T, I> on(
          TimeLine<T> timeLine,
          Collection<I> intervals
      ) {
  
          return new IntervalTree<>(intervals, timeLine);
  
      }
docs: /*[deutsch]
  <p>Erzeugt einen Intervallbaum auf einem Zeitstrahl gef&uuml;llt mit den angegebenen Momentintervallen. </p>
  
  @param   <T> the temporal type of time points in intervals
  @param   <I> the type of intervals stored in the tree
  @param   timeLine    the underlying timeline
  @param   intervals   collection of intervals
  @return  new interval tree
  @throws  ArithmeticException if the count of intervals overflows an int
  @see     net.time4j.engine.TimeAxis
  @see     net.time4j.engine.CalendarFamily#getTimeLine(String)
  @see     net.time4j.engine.CalendarFamily#getTimeLine(net.time4j.engine.VariantSource)
  @see     CalendarYear#timeline()
  @see     CalendarQuarter#timeline()
  @see     CalendarMonth#timeline()
  @see     CalendarWeek#timeline()
  @since   5.0