[TASK] Remove ext:dbal from installation steps
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Classes / Database / Query / Restriction / QueryRestrictionContainerInterface.php
1 <?php
2 declare (strict_types = 1);
3 namespace TYPO3\CMS\Core\Database\Query\Restriction;
4
5 /*
6 * This file is part of the TYPO3 CMS project.
7 *
8 * It is free software; you can redistribute it and/or modify it under
9 * the terms of the GNU General Public License, either version 2
10 * of the License, or any later version.
11 *
12 * For the full copyright and license information, please read the
13 * LICENSE.txt file that was distributed with this source code.
14 *
15 * The TYPO3 project - inspiring people to share!
16 */
17
18 /**
19 * Interface that all restriction collections must implement.
20 * It is an extension of the QueryRestrictionInterface, so collections can be treated as single restriction
21 */
22 interface QueryRestrictionContainerInterface extends QueryRestrictionInterface
23 {
24 /**
25 * Removes all restrictions stored within this container
26 *
27 * @return QueryRestrictionContainerInterface
28 */
29 public function removeAll();
30
31 /**
32 * Remove restriction of a given type
33 *
34 * @param string $restrictionType Class name of the restriction to be removed
35 * @return QueryRestrictionContainerInterface
36 */
37 public function removeByType(string $restrictionType);
38
39 /**
40 * Add a new restriction instance to this collection
41 *
42 * @param QueryRestrictionInterface $restriction
43 * @return QueryRestrictionContainerInterface
44 */
45 public function add(QueryRestrictionInterface $restriction);
46 }