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