@@ 42-65 (lines=24) @@ | ||
39 | __metaclass__ = abc.ABCMeta |
|
40 | ||
41 | ||
42 | class Sort(list, QueryStatement): |
|
43 | def __init__(self): |
|
44 | super(list, self).__init__() |
|
45 | self._type = SortStatement |
|
46 | ||
47 | def append(self, sort): |
|
48 | if not isinstance(sort, SortStatement): |
|
49 | raise TypeError('sort should be of type %s.' % self._type) |
|
50 | ||
51 | super(Sort, self).append(sort) |
|
52 | ||
53 | def translate(self, translator): |
|
54 | return translator.translate_sort(self) |
|
55 | ||
56 | def __str__(self): |
|
57 | res = 'Sort[' |
|
58 | ||
59 | for i, e in enumerate(self): |
|
60 | if i > 0: |
|
61 | res = '{}, '.format(res) |
|
62 | ||
63 | res = '{}{}'.format(res, e) |
|
64 | ||
65 | return '{}]'.format(res) |
|
66 | ||
67 | ||
68 | class AscSortStatement(SortStatement): |
|
@@ 252-272 (lines=21) @@ | ||
249 | .format(self._center, self._radius, self._unit) |
|
250 | ||
251 | ||
252 | class Query(list): |
|
253 | def __init__(self): |
|
254 | super(list, self).__init__() |
|
255 | self._type = QueryStatement |
|
256 | ||
257 | def append(self, query_elem): |
|
258 | if not isinstance(query_elem, QueryStatement): |
|
259 | raise TypeError('search_filter should be of type %s.' % self._type) |
|
260 | ||
261 | super(Query, self).append(query_elem) |
|
262 | ||
263 | def __str__(self): |
|
264 | res = 'Query[' |
|
265 | ||
266 | for i, e in enumerate(self): |
|
267 | if i > 0: |
|
268 | res = '{}, '.format(res) |
|
269 | ||
270 | res = '{}{}'.format(res, e) |
|
271 | ||
272 | return '{}]'.format(res) |
|
273 | ||
274 | ||
275 | class QueryTranslator(object): |