code: public Duration<U> multipliedBy(int factor) {
  
          if (
              this.isEmpty()
              || (factor == 1)
          ) {
              return this;
          } else if (factor == 0) {
              return ofZero();
          } else if (factor == -1) {
              return new Duration<>(this, true);
          }
  
          List<Item<U>> newItems = new ArrayList<>(this.count());
          int scalar = Math.abs(factor);
  
          for (int i = 0, n = this.count(); i < n; i++) {
              Item<U> item = this.getTotalLength().get(i);
              newItems.add(
                  Item.of(
                      MathUtils.safeMultiply(item.getAmount(), scalar),
                      item.getUnit()
                  )
              );
          }
  
          return new Duration<>(
              newItems,
              ((factor < 0) != this.isNegative())
          );
  
      }
docs: /*[deutsch]
  <p>Multipliziert alle enthaltenen Betr&auml;ge mit dem angegebenen
  Faktor. </p>
  
  <p>Ist der Faktor {@code 0}, ist die neue Zeitspanne leer. Mit dem
  Faktor {@code 1} wird diese Instanz selbst unver&auml;ndert
  zur&uuml;ckgegeben. Bei einem negativen Faktor wird zus&auml;tzlich
  das Vorzeichen ge&auml;ndert. </p>
  
  @param   factor  multiplication factor
  @return  new duration with all amounts multiplied while this duration
  remains unaffected
  @throws  ArithmeticException in case of long overflow