code: public static BackoffStrategy join(BackoffStrategy... backoffStrategies) {
          Preconditions.checkState(backoffStrategies.length > 0, "Must have at least one backoff strategy");
          List<BackoffStrategy> waitStrategyList = Lists.newArrayList(backoffStrategies);
          Preconditions.checkState(!waitStrategyList.contains(null), "Cannot have a null backoff strategy");
          return new CompositeBackoffStrategy(waitStrategyList);
      }
docs: Joins one or more wait strategies to derive a composite backoff strategy.
  The new joined strategy will have a wait time which is total of all wait times computed one after another in order.
  
  @param backoffStrategies Wait strategies that need to be applied one after another for computing the wait time.
  @return A composite backoff strategy