3 final class PhutilCalendarRecurrenceList
4 extends PhutilCalendarRecurrenceSource
{
6 private $dates = array();
9 public function setDates(array $dates) {
10 assert_instances_of($dates, 'PhutilCalendarDateTime');
11 $this->dates
= $dates;
15 public function getDates() {
19 public function resetSource() {
20 foreach ($this->getDates() as $date) {
21 $date->setViewerTimezone($this->getViewerTimezone());
24 $order = msort($this->getDates(), 'getEpoch');
25 $order = array_reverse($order);
26 $this->order
= $order;
31 public function getNextEvent($cursor) {
32 while ($this->order
) {
33 $next = array_pop($this->order
);
34 if ($next->getEpoch() >= $cursor) {