public function getPaginatedTopMilestones(PFUser $user, Project $project, Tuleap\AgileDashboard\Milestone\Criterion\ISearchOnStatus $criterion, $limit, $offset, $order) { $top_milestones = array(); $total_size = 0; $virtual_milestone = $this->getVirtualTopMilestone($user, $project); $root_planning = $this->planning_factory->getRootPlanning($user, $virtual_milestone->getProject()->getID()); $milestone_planning_tracker_id = $virtual_milestone->getPlanning()->getPlanningTrackerId(); if ($milestone_planning_tracker_id) { $top_milestone_artifacts = $this->milestone_dao->searchPaginatedTopMilestones($milestone_planning_tracker_id, $criterion, $limit, $offset, $order); $total_size = $this->milestone_dao->foundRows(); $top_milestones = $this->convertDarToArrayOfMilestones($user, $virtual_milestone, $top_milestone_artifacts); } return new AgileDashboard_Milestone_PaginatedMilestones($top_milestones, $total_size); }