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;
+ }
+}