code: @Override
      public OffsetTime plus(long amountToAdd, TemporalUnit unit) {
          if (unit instanceof ChronoUnit) {
              return with(time.plus(amountToAdd, unit), offset);
          }
          return unit.addTo(this, amountToAdd);
      }
docs: Returns a copy of this time with the specified amount added.
  <p>
  This returns an {@code OffsetTime}, based on this one, with the amount
  in terms of the unit added. If it is not possible to add the amount, because the
  unit is not supported or for some other reason, an exception is thrown.
  <p>
  If the field is a {@link ChronoUnit} then the addition is implemented by
  {@link LocalTime#plus(long, TemporalUnit)}.
  The offset is not part of the calculation and will be unchanged in the result.
  <p>
  If the field is not a {@code ChronoUnit}, then the result of this method
  is obtained by invoking {@code TemporalUnit.addTo(Temporal, long)}
  passing {@code this} as the argument. In this case, the unit determines
  whether and how to perform the addition.
  <p>
  This instance is immutable and unaffected by this method call.
  
  @param amountToAdd  the amount of the unit to add to the result, may be negative
  @param unit  the unit of the amount to add, not null
  @return an {@code OffsetTime} based on this time with the specified amount added, not null
  @throws DateTimeException if the addition cannot be made
  @throws UnsupportedTemporalTypeException if the unit is not supported
  @throws ArithmeticException if numeric overflow occurs