public final function executeWithPager(AphrontIDPagerView $pager)
 {
     $this->setLimit($pager->getPageSize() + 1);
     if ($pager->getAfterID()) {
         $this->setAfterID($pager->getAfterID());
     } else {
         if ($pager->getBeforeID()) {
             $this->setBeforeID($pager->getBeforeID());
         }
     }
     $results = $this->execute();
     $sliced_results = $pager->sliceResults($results);
     if ($this->beforeID || count($results) > $pager->getPageSize()) {
         $pager->setNextPageID($this->getPagingValue(last($sliced_results)));
     }
     if ($this->afterID || $this->beforeID && count($results) > $pager->getPageSize()) {
         $pager->setPrevPageID($this->getPagingValue(head($sliced_results)));
     }
     return $sliced_results;
 }