<?php
/*
- * Copyright (C) 2003-2008 Polytechnique.org
+ * Copyright (C) 2003-2010 Polytechnique.org
* http://opensource.polytechnique.org/
*
* This program is free software; you can redistribute it and/or modify
/** class for describing flags
*/
-class PlFlagSet
+class PlFlagSet extends PlAbstractIterable implements XDBFormat
{
/** string that holds the PlFlagSet */
private $values = array();
$this->sep = $sep;
$splitted = explode($sep, $flags);
foreach ($splitted as $part) {
- $this->values[$part] = true;
+ if (!empty($part)) {
+ $this->values[$part] = true;
+ }
}
}
}
return $flags;
}
+
+
+ /** format for XDB
+ */
+ public function format()
+ {
+ return XDB::escape($this->flags());
+ }
+
+
+ /** Build an iterator for this PlFlagSet.
+ */
+ public function iterate()
+ {
+ $array = array();
+ foreach ($this->values as $key=>$value) {
+ if ($value) {
+ $array[] = $key;
+ }
+ }
+ return PlIteratorUtils::fromArray($array, 1, true);
+ }
}
// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: