@Override
  public void add(final int index, final Content child) {
    // Confirm basic sanity of child.
    checkPreConditions(child, index, false);
    // Check to see whether this parent believes it can contain this content
    parent.canContainContent(child, index, false);

    child.setParent(parent);

    ensureCapacity(size + 1);
    if (index == size) {
      elementData[size++] = child;
    }
    else {
      System.arraycopy(elementData, index, elementData, index + 1, size - index);
      elementData[index] = child;
      size++;
    }
    // Successful add's increment the AbstractList's modCount
    incModCount();
  }
@Override
  public void add(final int index, final Content child)