code: public void beforeInsert(int index, Object element) {
  	// overridden for performance only.
  	if (index > size || index < 0) 
  		throw new IndexOutOfBoundsException("Index: "+index+", Size: "+size);
  	ensureCapacity(size + 1);
  	System.arraycopy(elements, index, elements, index+1, size-index);
  	elements[index] = element;
  	size++;
  }
docs: Inserts the specified element before the specified position into the receiver.
  Shifts the element currently at that position (if any) and
  any subsequent elements to the right.
  
  @param index index before which the specified element is to be inserted (must be in [0,size]).
  @param element element to be inserted.
  @exception IndexOutOfBoundsException index is out of range (<tt>index &lt; 0 || index &gt; size()</tt>).