public <T extends PageObject>void waitUntil(T entity,Predicate<T> waitUntil,String errorMessage){
  Preconditions.checkNotNull(entity);
  Preconditions.checkNotNull(waitUntil);
  Preconditions.checkArgument(!Strings.isNullOrEmpty(errorMessage));
  waitUntilAfter(entity,waitUntil,errorMessage,waitInSeconds);
}

public < T extends PageObject > void waitUntil ( T entity , Predicate < T > waitUntil , String errorMessage ) { Preconditions . checkNotNull ( entity ) ; Preconditions . checkNotNull ( waitUntil ) ; Preconditions . checkArgument ( ! Strings . isNullOrEmpty ( errorMessage ) ) ; waitUntilAfter ( entity , waitUntil , errorMessage , waitInSeconds ) ; }
waits until the predicate on the page object entity is true , times out in waitinseconds .
