Add an API to handle caching.
[platal.git] / classes / plflagset.php
index 28c7add..b5f30d9 100644 (file)
@@ -21,7 +21,7 @@
 
 /** class for describing flags
  */
-class PlFlagSet implements XDBFormat
+class PlFlagSet extends PlAbstractIterable implements XDBFormat
 {
     /** string that holds the PlFlagSet */
     private $values = array();
@@ -128,6 +128,20 @@ class PlFlagSet implements XDBFormat
     {
         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: