code: public List<I> findIntersections(ChronoInterval<T> interval) {
  
          // trivial case
          if (interval.isEmpty()) {
              return Collections.emptyList();
          }
  
          // make search interval half-open
          T low = interval.getStart().getTemporal();
          T high = interval.getEnd().getTemporal();
  
          if ((low != null) && interval.getStart().isOpen()) {
              low = this.timeLine.stepForward(low);
          }
  
          if ((high != null) && interval.getEnd().isClosed()) {
              high = this.timeLine.stepForward(high);
          }
  
          // collect recursively
          List<I> found = new ArrayList<>();
          findIntersections(low, high, this.root, found);
          return Collections.unmodifiableList(found);
  
      }
docs: /*[deutsch]
  <p>Liefert eine Liste aller gespeicherten Intervalle, die sich mit dem angegebenen Suchintervall
  &uuml;berschneiden. </p>
  
  @param   interval    the search interval
  @return  unmodifiable list of all stored intervals which intersect the search interval, maybe empty