protected <T>T waitForPropertyValue(String documentSelfLink,Class<T> type,String propName,Object propValue,boolean shouldMatch,AtomicInteger count) throws Throwable {
  @SuppressWarnings("unchecked") List<Object> prop=propValue instanceof List ? (List<Object>)propValue : Arrays.asList(propValue);
  return waitForPropertyValue(documentSelfLink,type,propName,prop,shouldMatch,count);
}

protected < T > T waitForPropertyValue ( String documentSelfLink , Class < T > type , String propName , Object propValue , boolean shouldMatch , AtomicInteger count ) throws Throwable { @ SuppressWarnings ( "unchecked" ) List < Object > prop = propValue instanceof List ? ( List < Object > ) propValue : Arrays . asList ( propValue ) ; return waitForPropertyValue ( documentSelfLink , type , propName , prop , shouldMatch , count ) ; }
waits until the specified document field matches the given value or differs from the given value . throws an exception if times out . nested properties can be used to ( e . g . " x . y . z " ) .
