forked from sonata-project/SonataAdminBundle
-
Notifications
You must be signed in to change notification settings - Fork 0
/
FilterInterface.php
170 lines (142 loc) · 3.27 KB
/
FilterInterface.php
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<?php
/*
* This file is part of the Sonata Project package.
*
* (c) Thomas Rabaix <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Sonata\AdminBundle\Filter;
use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
/**
* @author Thomas Rabaix <[email protected]>
*/
interface FilterInterface
{
const CONDITION_OR = 'OR';
const CONDITION_AND = 'AND';
/**
* Apply the filter to the QueryBuilder instance.
*
* @param ProxyQueryInterface $queryBuilder
* @param string $alias
* @param string $field
* @param string $value
*/
public function filter(ProxyQueryInterface $queryBuilder, $alias, $field, $value);
/**
* @param mixed $query
* @param mixed $value
*/
public function apply($query, $value);
/**
* Returns the filter name.
*
* @return string
*/
public function getName();
/**
* Returns the filter form name.
*
* @return string
*/
public function getFormName();
/**
* Returns the label name.
*
* @return string|bool
*/
public function getLabel();
/**
* @param string $label
*/
public function setLabel($label);
/**
* @return array
*/
public function getDefaultOptions();
/**
* @param string $name
* @param null $default
*
* @return mixed
*/
public function getOption($name, $default = null);
/**
* @param string $name
* @param mixed $value
*/
public function setOption($name, $value);
/**
* @param string $name
* @param array $options
*/
public function initialize($name, array $options = array());
/**
* @return string
*/
public function getFieldName();
/**
* @return array of mappings
*/
public function getParentAssociationMappings();
/**
* @return array field mapping
*/
public function getFieldMapping();
/**
* @return array association mapping
*/
public function getAssociationMapping();
/**
* @return array
*/
public function getFieldOptions();
/**
* Get field option.
*
* @param string $name
* @param null $default
*
* @return mixed
*/
public function getFieldOption($name, $default = null);
/**
* Set field option.
*
* @param string $name
* @param mixed $value
*/
public function setFieldOption($name, $value);
/**
* @return string
*/
public function getFieldType();
/**
* Returns the main widget used to render the filter.
*
* @return array
*/
public function getRenderSettings();
/**
* Returns true if filter is active.
*
* @return bool
*/
public function isActive();
/**
* Set the condition to use with the left side of the query : OR or AND.
*
* @param string $condition
*/
public function setCondition($condition);
/**
* @return string
*/
public function getCondition();
/**
* @return string
*/
public function getTranslationDomain();
}