From bbda6a710849a46de98937e85e96ea06abe333fd Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Tue, 20 Jan 2015 23:53:59 +0100 Subject: Once class per file: framework/*.php; removed pradolite --- framework/TEnumerable.php | 66 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 framework/TEnumerable.php (limited to 'framework/TEnumerable.php') diff --git a/framework/TEnumerable.php b/framework/TEnumerable.php new file mode 100644 index 00000000..8dd42857 --- /dev/null +++ b/framework/TEnumerable.php @@ -0,0 +1,66 @@ + + * + * Global Events, intra-object events, Class behaviors, expanded behaviors + * @author Brad Anderson + * + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2005-2014 PradoSoft + * @license http://www.pradosoft.com/license/ + * @package System + */ + + +/** + * TEnumerable class. + * TEnumerable is the base class for all enumerable types. + * To define an enumerable type, extend TEnumberable and define string constants. + * Each constant represents an enumerable value. + * The constant name must be the same as the constant value. + * For example, + * + * class TTextAlign extends TEnumerable + * { + * const Left='Left'; + * const Right='Right'; + * } + * + * Then, one can use the enumerable values such as TTextAlign::Left and + * TTextAlign::Right. + * + * @author Qiang Xue + * @package System + * @since 3.0 + */ +class TEnumerable implements Iterator +{ + private $_enums=array(); + + public function __construct() { + $reflection=new ReflectionClass($this); + $this->_enums=$reflection->getConstants(); + } + + public function current() { + return current($this->_enums); + } + + public function key() { + return key($this->_enums); + } + + public function next() { + return next($this->_enums); + } + + public function rewind() { + reset($this->_enums); + } + + public function valid() { + return $this->current()!==false; + } +} \ No newline at end of file -- cgit v1.2.3