[TASK] Namespace classes
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Classes / Validation / Validator / NumberRangeValidator.php
1 <?php
2 namespace TYPO3\CMS\Extbase\Validation\Validator;
3
4 /***************************************************************
5 * Copyright notice
6 *
7 * (c) 2009 Jochen Rau <jochen.rau@typoplanet.de>
8 * All rights reserved
9 *
10 * This class is a backport of the corresponding class of FLOW3.
11 * All credits go to the v5 team.
12 *
13 * This script is part of the TYPO3 project. The TYPO3 project is
14 * free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation; either version 2 of the License, or
17 * (at your option) any later version.
18 *
19 * The GNU General Public License can be found at
20 * http://www.gnu.org/copyleft/gpl.html.
21 *
22 * This script is distributed in the hope that it will be useful,
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 * GNU General Public License for more details.
26 *
27 * This copyright notice MUST APPEAR in all copies of the script!
28 ***************************************************************/
29 /**
30 * Validator for general numbers
31 *
32 * @package Extbase
33 * @subpackage Validation\Validator
34 * @version $Id$
35 * @scope prototype
36 */
37 class NumberRangeValidator extends \TYPO3\CMS\Extbase\Validation\Validator\AbstractValidator {
38
39 /**
40 * Returns TRUE, if the given property ($propertyValue) is a valid number in the given range.
41 *
42 * If at least one error occurred, the result is FALSE.
43 *
44 * @param mixed $value The value that should be validated
45 * @return boolean TRUE if the value is within the range, otherwise FALSE
46 */
47 public function isValid($value) {
48 if (isset($this->options['minimum'])) {
49 $this->options['startRange'] = $this->options['minimum'];
50 }
51 if (isset($this->options['maximum'])) {
52 $this->options['endRange'] = $this->options['maximum'];
53 }
54 $this->errors = array();
55 if (!is_numeric($value)) {
56 $this->addError('The given subject was not a valid number.', 1221563685);
57 return FALSE;
58 }
59 $startRange = isset($this->options['startRange']) ? intval($this->options['startRange']) : 0;
60 $endRange = isset($this->options['endRange']) ? intval($this->options['endRange']) : PHP_INT_MAX;
61 if ($startRange > $endRange) {
62 $x = $startRange;
63 $startRange = $endRange;
64 $endRange = $x;
65 }
66 if ($value >= $startRange && $value <= $endRange) {
67 return TRUE;
68 }
69 $this->addError('The given subject was not in the valid range (%1$d - %2$d).', 1221561046, array($startRange, $endRange));
70 return FALSE;
71 }
72
73 }
74
75
76 ?>