code: @Override
      public boolean isBefore(ChronoInterval<T> other) {
  
          if (other.getStart().isInfinite() || this.end.isInfinite()) {
              return false;
          }
  
          T endA = this.end.getTemporal();
          T startB = getClosedFiniteStart(other.getStart(), this.getTimeLine());
  
          if (startB == null) { // exotic case: start in infinite future
              return true;
          } else if (this.end.isOpen()) {
              return !endA.isAfter(startB);
          } else {
              return endA.isBefore(startB);
          }
  
      }
docs: /*[deutsch]
  <p>Liegt dieses Intervall vor dem anderen? </p>
  
  <p>&Auml;quivalent zum Ausdruck {@code (precedes(other) || meets(other))}. </p>
  
  @param   other   another interval whose relation to this interval is to be investigated
  @return  {@code true} if this interval is before the other one else {@code false}
  @since   2.0