code: public static <T> Iterable<T> createReverseIterable(List<T> list) {
  		// When the list is empty we can use the "forward" iterable (i.e. the
  		// list itself) also as the reverseIterable as it will do nothing.
  		if (list.size() == 0) {
  			return list;
  		}
  
  		return new ReverseIterable<T>(list);
  	}
docs: Returns an {@link Iterable} with an iterator iterating the given list
  from the end to the start.
  <p>
  I.e. the iterator does the reverse of the {@link List#iterator()}.
  
  @param <T> Type of elements in the list
  @param list  &nbsp;
  @return a reverse {@link Iterable} of the list