blob: 504de2e4138cdf97bf85d24941bc216404bb02f0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
<?php
/* Icinga Web 2 | (c) 2014 Icinga Development Team | GPLv2+ */
namespace Icinga\Protocol\File;
use Icinga\Data\SimpleQuery;
use Icinga\Data\Filter\Filter;
/**
* Class FileQuery
*
* Query for Datasource Icinga\Protocol\File\FileReader
*
* @package Icinga\Protocol\File
*/
class FileQuery extends SimpleQuery
{
/**
* Sort direction
*
* @var int
*/
private $sortDir;
/**
* Filters to apply on result
*
* @var array
*/
private $filters = array();
/**
* Nothing to do here
*/
public function applyFilter(Filter $filter)
{
}
/**
* Sort query result chronological
*
* @param string $dir Sort direction, 'ASC' or 'DESC' (default)
*
* @return FileQuery
*/
public function order($field, $direction = null)
{
$this->sortDir = (
$direction === null || strtoupper(trim($direction)) === 'DESC'
) ? self::SORT_DESC : self::SORT_ASC;
return $this;
}
/**
* Return true if sorting descending, false otherwise
*
* @return bool
*/
public function sortDesc()
{
return $this->sortDir === self::SORT_DESC;
}
/**
* Add an mandatory filter expression to be applied on this query
*
* @param string $expression the filter expression to be applied
*
* @return FileQuery
*/
public function andWhere($expression)
{
$this->filters[] = $expression;
return $this;
}
/**
* Get filters currently applied on this query
*
* @return array
*/
public function getFilters()
{
return $this->filters;
}
}
|