Code Duplication    Length = 29-31 lines in 2 locations

src/DataSource/DoctrineDataSource.php 1 location

@@ 324-352 (lines=29) @@
321
	 * @param  Sorting $sorting
322
	 * @return static
323
	 */
324
	public function sort(Sorting $sorting)
325
	{
326
		if (is_callable($sorting->getSortCallback())) {
327
			call_user_func(
328
				$sorting->getSortCallback(),
329
				$this->data_source,
330
				$sorting->getSort()
331
			);
332
333
			return $this;
334
		}
335
336
		$sort = $sorting->getSort();
337
338
		if (!empty($sort)) {
339
			foreach ($sort as $column => $order) {
340
				$this->data_source->addOrderBy($this->checkAliases($column), $order);
341
			}
342
		} else {
343
			/**
344
			 * Has the statement already a order by clause?
345
			 */
346
			if (!$this->data_source->getDQLPart('orderBy')) {
347
				$this->data_source->orderBy($this->checkAliases($this->primary_key));
348
			}
349
		}
350
351
		return $this;
352
	}
353
354
355
	/**

src/DataSource/NetteDatabaseTableDataSource.php 1 location

@@ 289-319 (lines=31) @@
286
	 * @param  Sorting $sorting
287
	 * @return static
288
	 */
289
	public function sort(Sorting $sorting)
290
	{
291
		if (is_callable($sorting->getSortCallback())) {
292
			call_user_func(
293
				$sorting->getSortCallback(),
294
				$this->data_source,
295
				$sorting->getSort()
296
			);
297
298
			return $this;
299
		}
300
301
		$sort = $sorting->getSort();
302
303
		if (!empty($sort)) {
304
			$this->data_source->getSqlBuilder()->setOrder([], []);
305
306
			foreach ($sort as $column => $order) {
307
				$this->data_source->order("$column $order");
308
			}
309
		} else {
310
			/**
311
			 * Has the statement already a order by clause?
312
			 */
313
			if (!$this->data_source->getSqlBuilder()->getOrder()) {
314
				$this->data_source->order($this->primary_key);
315
			}
316
		}
317
318
		return $this;
319
	}
320
321
322
	/**