public static int checkElementIndex(int index, int size, @Nullable String desc) {
		// Carefully optimized for execution by hotspot (explanatory comment
		// above)
		if (index < 0 || index >= size) {
			throw new IndexOutOfBoundsException(buildBadElementIndexMessage(index, size, desc));
		}
		return index;
	}
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
@return the value of {@code index}
ngrinder-core/src/main/java/org/ngrinder/common/util/Preconditions.java