summaryrefslogtreecommitdiffstats
path: root/library/X509/SortAdapter.php
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 12:47:35 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 12:47:35 +0000
commit5f112e7d0464d98282443b78870cdccabe42aae9 (patch)
treeaac24e989ceebb84c04de382960608c3fcef7313 /library/X509/SortAdapter.php
parentInitial commit. (diff)
downloadicingaweb2-module-x509-5f112e7d0464d98282443b78870cdccabe42aae9.tar.xz
icingaweb2-module-x509-5f112e7d0464d98282443b78870cdccabe42aae9.zip
Adding upstream version 1:1.1.2.upstream/1%1.1.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'library/X509/SortAdapter.php')
-rw-r--r--library/X509/SortAdapter.php46
1 files changed, 46 insertions, 0 deletions
diff --git a/library/X509/SortAdapter.php b/library/X509/SortAdapter.php
new file mode 100644
index 0000000..5adb86b
--- /dev/null
+++ b/library/X509/SortAdapter.php
@@ -0,0 +1,46 @@
+<?php
+// Icinga Web 2 X.509 Module | (c) 2018 Icinga GmbH | GPLv2
+
+namespace Icinga\Module\X509;
+
+use Icinga\Data\Sortable;
+use ipl\Sql;
+
+/**
+ * @internal
+ */
+class SortAdapter implements Sortable
+{
+ protected $select;
+
+ protected $callback;
+
+ public function __construct(Sql\Select $select, \Closure $callback = null)
+ {
+ $this->select = $select;
+ $this->callback = $callback;
+ }
+
+ public function order($field, $direction = null)
+ {
+ if ($this->callback !== null) {
+ $field = call_user_func($this->callback, $field) ?: $field;
+ }
+
+ if ($direction === null) {
+ $this->select->orderBy($field);
+ } else {
+ $this->select->orderBy($field, $direction);
+ }
+ }
+
+ public function hasOrder()
+ {
+ return $this->select->hasOrderBy();
+ }
+
+ public function getOrder()
+ {
+ return $this->select->getOrderBy();
+ }
+}