/**
  * Replaces a QListItem at $intIndex. This combines the RemoveItem() and AddItemAt() operations.
  *
  * @param integer   $intIndex
  * @param QListItem $objListItem
  *
  * @throws Exception|QInvalidCastException
  */
 public function ReplaceItem($intIndex, QListItem $objListItem)
 {
     try {
         $intIndex = QType::Cast($intIndex, QType::Integer);
     } catch (QInvalidCastException $objExc) {
         $objExc->IncrementOffset();
         throw $objExc;
     }
     $objListItem->SetId($this->GetId() . '_' . $intIndex);
     $this->objListItemArray[$intIndex] = $objListItem;
     $objListItem->Reindex();
     $this->MarkAsModified();
 }