[CLEANUP] Replace wrong/old file copyright comments
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Classes / Validation / Validator / AbstractCompositeValidator.php
1 <?php
2 namespace TYPO3\CMS\Extbase\Validation\Validator;
3
4 /***************************************************************
5 * Copyright notice
6 *
7 * (c) 2010-2012 Extbase Team (http://forge.typo3.org/projects/typo3v4-mvc)
8 * Extbase is a backport of TYPO3 Flow. All credits go to the TYPO3 Flow team.
9 * All rights reserved
10 *
11 * This script is part of the TYPO3 project. The TYPO3 project is
12 * free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 2 of the License, or
15 * (at your option) any later version.
16 *
17 * The GNU General Public License can be found at
18 * http://www.gnu.org/copyleft/gpl.html.
19 * A copy is found in the textfile GPL.txt and important notices to the license
20 * from the author is found in LICENSE.txt distributed with these scripts.
21 *
22 *
23 * This script is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 * GNU General Public License for more details.
27 *
28 * This copyright notice MUST APPEAR in all copies of the script!
29 ***************************************************************/
30 /**
31 * An abstract composite validator with consisting of other validators
32 *
33 * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License, version 3 or later
34 */
35 abstract class AbstractCompositeValidator implements \TYPO3\CMS\Extbase\Validation\Validator\ValidatorInterface, \Countable {
36
37 /**
38 * @var array
39 */
40 protected $options = array();
41
42 /**
43 * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage
44 */
45 protected $validators;
46
47 /**
48 * @var array
49 */
50 protected $errors = array();
51
52 /**
53 * Constructs the validator conjunction
54 */
55 public function __construct() {
56 $this->validators = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
57 }
58
59 /**
60 * Does nothing.
61 *
62 * @param array $options Not used
63 * @return void
64 * @deprecated since Extbase 1.4.0, will be removed in Extbase 6.1
65 */
66 public function setOptions(array $options) {
67 }
68
69 /**
70 * Returns an array of errors which occurred during the last isValid() call.
71 *
72 * @return array An array of \TYPO3\CMS\Extbase\Validation\Error objects or an empty array if no errors occurred.
73 * @deprecated since Extbase 1.4.0, will be removed in Extbase 6.1
74 */
75 public function getErrors() {
76 return $this->errors;
77 }
78
79 /**
80 * Adds a new validator to the conjunction.
81 *
82 * @param \TYPO3\CMS\Extbase\Validation\Validator\ValidatorInterface $validator The validator that should be added
83 * @return void
84 */
85 public function addValidator(\TYPO3\CMS\Extbase\Validation\Validator\ValidatorInterface $validator) {
86 $this->validators->attach($validator);
87 }
88
89 /**
90 * Removes the specified validator.
91 *
92 * @param \TYPO3\CMS\Extbase\Validation\Validator\ValidatorInterface $validator The validator to remove
93 * @throws \TYPO3\CMS\Extbase\Validation\Exception\NoSuchValidatorException
94 * @return void
95 */
96 public function removeValidator(\TYPO3\CMS\Extbase\Validation\Validator\ValidatorInterface $validator) {
97 if (!$this->validators->contains($validator)) {
98 throw new \TYPO3\CMS\Extbase\Validation\Exception\NoSuchValidatorException('Cannot remove validator because its not in the conjunction.', 1207020177);
99 }
100 $this->validators->detach($validator);
101 }
102
103 /**
104 * Returns the number of validators contained in this conjunction.
105 *
106 * @return integer The number of validators
107 */
108 public function count() {
109 return count($this->validators);
110 }
111 }
112
113 ?>