code: @FluentApi
    public static WaitTask waitFor(long duration, TimeUnit timeUnit) {
      return WaitTask.newWaitTask().waitFor(duration, timeUnit);
    }
docs: Waits for a specified duration on a {@link Condition} possibly checking every specified interval
  on whether the {@link Condition} has been satisfied.
  
  @param duration a long value indicating the duration of time to wait for the Condition to be satisfied.
  @param timeUnit the TimeUnit of the duration time value.
  @return a boolean value indicating whether the Condition has been satisfied within the given duration.
  @see org.cp.elements.lang.concurrent.ThreadUtils.WaitTask
  @see org.cp.elements.lang.annotation.FluentApi
  @see java.util.concurrent.TimeUnit