sdk/src/com/socialize/google/gdata/util/common/base/Preconditions.java
public static void checkElementIndex(int index, int size, String desc) {
    checkArgument(size >= 0, "negative size: %s", size);
    if (index < 0) {
      throw new IndexOutOfBoundsException(
          format("%s (%s) must not be negative", desc, index));
    }
    if (index >= size) {
      throw new IndexOutOfBoundsException(
          format("%s (%s) must be less than size (%s)", desc, index, size));
    }
  }
public static void checkElementIndex(int index, int size, String desc) {
    checkArgument(size >= 0, "negative size: %s", size);
    if (index < 0) {
      throw new IndexOutOfBoundsException(
          format("%s (%s) must not be negative", desc, index));
    }
    if (index >= size) {
      throw new IndexOutOfBoundsException(
          format("%s (%s) must be less than size (%s)", desc, index, size));
    }
  }
Ensures that {@code index} specifies a valid <i>element</i> in an array,
list or string of size {@code size}. An element index may range from zero,
inclusive, to {@code size}, exclusive.

@param index a user-supplied index identifying an element of an array, list
or string
@param size the size of that array, list or string
@param desc the text to use to describe this index in an error message
@throws IndexOutOfBoundsException if {@code index} is negative or is not
less than {@code size}
@throws IllegalArgumentException if {@code size} is negative