123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <?php
-
-
-
-
- class Yay_SimpleSequence implements Yay_Sequence
- {
-
-
-
- private $_name;
-
-
-
- private $_sequenceIds = array();
-
-
-
- private $_counter = 0;
-
-
-
- private $_currentId = null;
-
-
-
- public function __construct($name)
- {
- $this->_name = $name;
- }
-
-
-
- public function requestSequenceId()
- {
- $id = $this->_counter++;
- $this->_sequenceIds[] = $id;
- return $id;
- }
-
-
-
- public function isInSequence($sequenceId)
- {
- if ($this->_currentId === $sequenceId)
- {
- $inSequence = true;
- }
- elseif (current($this->_sequenceIds) === $sequenceId)
- {
- $this->_currentId = array_shift($this->_sequenceIds);
- $inSequence = true;
- }
- else
- {
- $inSequence = false;
- }
- return $inSequence;
- }
-
-
-
- public function describeTo(Yay_Description $description)
- {
- $description->appendText(sprintf(' sequence %s;', $this->_name));
- }
-
- }
|