git subrepo commit (merge) mailcow/src/mailcow-dockerized

subrepo: subdir:   "mailcow/src/mailcow-dockerized"
  merged:   "02ae5285"
upstream: origin:   "https://github.com/mailcow/mailcow-dockerized.git"
  branch:   "master"
  commit:   "649a5c01"
git-subrepo: version:  "0.4.3"
  origin:   "???"
  commit:   "???"
Change-Id: I870ad468fba026cc5abf3c5699ed1e12ff28b32b
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Paginator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Paginator.php
new file mode 100644
index 0000000..0f61fe2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Paginator.php
@@ -0,0 +1,206 @@
+<?php
+
+namespace Adldap\Query;
+
+use Countable;
+use ArrayIterator;
+use IteratorAggregate;
+
+class Paginator implements Countable, IteratorAggregate
+{
+    /**
+     * The complete results array.
+     *
+     * @var array
+     */
+    protected $results = [];
+
+    /**
+     * The total amount of pages.
+     *
+     * @var int
+     */
+    protected $pages;
+
+    /**
+     * The amount of entries per page.
+     *
+     * @var int
+     */
+    protected $perPage;
+
+    /**
+     * The current page number.
+     *
+     * @var int
+     */
+    protected $currentPage;
+
+    /**
+     * The current entry offset number.
+     *
+     * @var int
+     */
+    protected $currentOffset;
+
+    /**
+     * Constructor.
+     *
+     * @param array $results
+     * @param int   $perPage
+     * @param int   $currentPage
+     * @param int   $pages
+     */
+    public function __construct(array $results = [], $perPage = 50, $currentPage = 0, $pages = 0)
+    {
+        $this->setResults($results)
+            ->setPerPage($perPage)
+            ->setCurrentPage($currentPage)
+            ->setPages($pages)
+            ->setCurrentOffset(($this->getCurrentPage() * $this->getPerPage()));
+    }
+
+    /**
+     * Get an iterator for the entries.
+     *
+     * @return ArrayIterator
+     */
+    public function getIterator()
+    {
+        $entries = array_slice($this->getResults(), $this->getCurrentOffset(), $this->getPerPage(), true);
+
+        return new ArrayIterator($entries);
+    }
+
+    /**
+     * Returns the complete results array.
+     *
+     * @return array
+     */
+    public function getResults()
+    {
+        return $this->results;
+    }
+
+    /**
+     * Returns the total amount of pages
+     * in a paginated result.
+     *
+     * @return int
+     */
+    public function getPages()
+    {
+        return $this->pages;
+    }
+
+    /**
+     * Returns the total amount of entries
+     * allowed per page.
+     *
+     * @return int
+     */
+    public function getPerPage()
+    {
+        return $this->perPage;
+    }
+
+    /**
+     * Returns the current page number.
+     *
+     * @return int
+     */
+    public function getCurrentPage()
+    {
+        return $this->currentPage;
+    }
+
+    /**
+     * Returns the current offset number.
+     *
+     * @return int
+     */
+    public function getCurrentOffset()
+    {
+        return $this->currentOffset;
+    }
+
+    /**
+     * Returns the total amount of results.
+     *
+     * @return int
+     */
+    public function count()
+    {
+        return count($this->results);
+    }
+
+    /**
+     * Sets the results array property.
+     *
+     * @param array $results
+     *
+     * @return Paginator
+     */
+    protected function setResults(array $results)
+    {
+        $this->results = $results;
+
+        return $this;
+    }
+
+    /**
+     * Sets the total number of pages.
+     *
+     * @param int $pages
+     *
+     * @return Paginator
+     */
+    protected function setPages($pages = 0)
+    {
+        $this->pages = (int) $pages;
+
+        return $this;
+    }
+
+    /**
+     * Sets the number of entries per page.
+     *
+     * @param int $perPage
+     *
+     * @return Paginator
+     */
+    protected function setPerPage($perPage = 50)
+    {
+        $this->perPage = (int) $perPage;
+
+        return $this;
+    }
+
+    /**
+     * Sets the current page number.
+     *
+     * @param int $currentPage
+     *
+     * @return Paginator
+     */
+    protected function setCurrentPage($currentPage = 0)
+    {
+        $this->currentPage = (int) $currentPage;
+
+        return $this;
+    }
+
+    /**
+     * Sets the current offset number.
+     *
+     * @param int $offset
+     *
+     * @return Paginator
+     */
+    protected function setCurrentOffset($offset = 0)
+    {
+        $this->currentOffset = (int) $offset;
+
+        return $this;
+    }
+}