diff options
Diffstat (limited to 'includes/view/ShiftCalendarLane.php')
-rw-r--r-- | includes/view/ShiftCalendarLane.php | 121 |
1 files changed, 71 insertions, 50 deletions
diff --git a/includes/view/ShiftCalendarLane.php b/includes/view/ShiftCalendarLane.php index 33fccec3..774683bd 100644 --- a/includes/view/ShiftCalendarLane.php +++ b/includes/view/ShiftCalendarLane.php @@ -5,59 +5,80 @@ namespace Engelsystem; /** * Represents a single lane in a shifts calendar. */ -class ShiftCalendarLane { - - private $firstBlockStartTime; - - private $blockCount; - - private $header; - - private $shifts = []; - - public function __construct($header, $firstBlockStartTime, $blockCount) { - $this->header = $header; - $this->firstBlockStartTime = $firstBlockStartTime; - $this->blockCount = $blockCount; - } - - /** - * Adds a shift to the lane, but only if it fits. - * Returns true on success. - * - * @param Shift $shift - * The shift to add - * @return boolean true on success - */ - public function addShift($shift) { - if ($this->shiftFits($shift)) { - $this->shifts[] = $shift; - return true; +class ShiftCalendarLane +{ + /** @var int */ + private $firstBlockStartTime; + + /** @var int */ + private $blockCount; + + /** @var string */ + private $header; + + /** @var array[] */ + private $shifts = []; + + /** + * ShiftCalendarLane constructor. + * + * @param string $header + * @param int $firstBlockStartTime Unix timestamp + * @param int $blockCount + */ + public function __construct($header, $firstBlockStartTime, $blockCount) + { + $this->header = $header; + $this->firstBlockStartTime = $firstBlockStartTime; + $this->blockCount = $blockCount; } - return false; - } - - /** - * Returns true if given shift fits into this lane. - * - * @param Shift $shift - * The shift to fit into this lane - */ - public function shiftFits($newShift) { - foreach ($this->shifts as $laneShift) { - if (! ($newShift['start'] >= $laneShift['end'] || $newShift['end'] <= $laneShift['start'])) { + + /** + * Adds a shift to the lane, but only if it fits. + * Returns true on success. + * + * @param array $shift The shift to add + * @return boolean true on success + */ + public function addShift($shift) + { + if ($this->shiftFits($shift)) { + $this->shifts[] = $shift; + return true; + } return false; - } } - return true; - } - public function getHeader() { - return $this->header; - } + /** + * Returns true if given shift fits into this lane. + * + * @param array $newShift + * @return bool + * @internal param array $shift The shift to fit into this lane + */ + public function shiftFits($newShift) + { + foreach ($this->shifts as $laneShift) { + if (!($newShift['start'] >= $laneShift['end'] || $newShift['end'] <= $laneShift['start'])) { + return false; + } + } + return true; + } + + /** + * @return string + */ + public function getHeader() + { + return $this->header; + } - public function getShifts() { - return $this->shifts; - } + /** + * @return array[] + */ + public function getShifts() + { + return $this->shifts; + } } -?>
\ No newline at end of file |