Version 1
[yaffs-website] / vendor / mikey179 / vfsStream / src / main / php / org / bovigo / vfs / vfsStreamContainerIterator.php
diff --git a/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContainerIterator.php b/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContainerIterator.php
new file mode 100644 (file)
index 0000000..99ea1f8
--- /dev/null
@@ -0,0 +1,93 @@
+<?php
+/**
+ * This file is part of vfsStream.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ *
+ * @package  org\bovigo\vfs
+ */
+namespace org\bovigo\vfs;
+/**
+ * Iterator for children of a directory container.
+ */
+class vfsStreamContainerIterator implements \Iterator
+{
+    /**
+     * list of children from container to iterate over
+     *
+     * @type  vfsStreamContent[]
+     */
+    protected $children;
+
+    /**
+     * constructor
+     *
+     * @param  vfsStreamContent[]  $children
+     */
+    public function __construct(array $children)
+    {
+        $this->children = $children;
+        if (vfsStream::useDotfiles()) {
+            array_unshift($this->children, new DotDirectory('.'), new DotDirectory('..'));
+        }
+
+        reset($this->children);
+    }
+
+    /**
+     * resets children pointer
+     */
+    public function rewind()
+    {
+        reset($this->children);
+    }
+
+    /**
+     * returns the current child
+     *
+     * @return  vfsStreamContent
+     */
+    public function current()
+    {
+        $child = current($this->children);
+        if (false === $child) {
+            return null;
+        }
+
+        return $child;
+    }
+
+    /**
+     * returns the name of the current child
+     *
+     * @return  string
+     */
+    public function key()
+    {
+        $child = current($this->children);
+        if (false === $child) {
+            return null;
+        }
+
+        return $child->getName();
+    }
+
+    /**
+     * iterates to next child
+     */
+    public function next()
+    {
+        next($this->children);
+    }
+
+    /**
+     * checks if the current value is valid
+     *
+     * @return  bool
+     */
+    public function valid()
+    {
+        return (false !== current($this->children));
+    }
+}