code: @SuppressWarnings("unchecked")
      @Override
      public ChronoDateImpl<D> plus(long amountToAdd, TemporalUnit unit) {
          if (unit instanceof ChronoUnit) {
              ChronoUnit f = (ChronoUnit) unit;
              switch (f) {
                  case DAYS: return plusDays(amountToAdd);
                  case WEEKS: return plusDays(Jdk8Methods.safeMultiply(amountToAdd, 7));
                  case MONTHS: return plusMonths(amountToAdd);
                  case YEARS: return plusYears(amountToAdd);
                  case DECADES: return plusYears(Jdk8Methods.safeMultiply(amountToAdd, 10));
                  case CENTURIES: return plusYears(Jdk8Methods.safeMultiply(amountToAdd, 100));
                  case MILLENNIA: return plusYears(Jdk8Methods.safeMultiply(amountToAdd, 1000));
  //                case ERAS: throw new DateTimeException("Unable to add era, standard calendar system only has one era");
  //                case FOREVER: return (period == 0 ? this : (period > 0 ? LocalDate.MAX_DATE : LocalDate.MIN_DATE));
              }
              throw new DateTimeException(unit + " not valid for chronology " + getChronology().getId());
          }
          return (ChronoDateImpl<D>) getChronology().ensureChronoLocalDate(unit.addTo(this, amountToAdd));
      }
docs: -----------------------------------------------------------------------