- <?php
- /**
- * Validates input for suitability as a Perforce change number.
- * Permits the literal string 'default' and integers or strings
- * (that are all digits) with an integer value > 0.
- *
- * @copyright 2011 Perforce Software. All rights reserved.
- * @license Please see LICENSE.txt in top-level folder of this distribution.
- * @version <release>/<patch>
- */
-
- namespace P4\Validate;
-
- use P4\Spec\Change;
-
- class ChangeNumber extends AbstractValidate
- {
- const INVALID_TYPE = 'invalidType';
- const INVALID_NUMBER = 'invalidNumber';
-
- protected $messageTemplates = array(
- self::INVALID_TYPE => 'Change number must be an integer or purely numeric string.',
- self::INVALID_NUMBER => 'Change numbers must be greater than zero.'
- );
-
- /**
- * Checks if the given string is a valid change number.
- *
- * @param string|int $value change number to validate.
- * @return boolean true if value is a valid change number, false otherwise.
- */
- public function isValid($value)
- {
- $this->set($value);
-
- // 'default' change is a special case that we allow.
- if ($value === Change::DEFAULT_CHANGE) {
- return true;
- }
-
- // test for valid type.
- if (!is_int($value) && !is_string($value)) {
- $this->error(self::INVALID_TYPE);
- return false;
- }
-
- // test for a string with anything other than digits.
- if (is_string($value) && preg_match('/[^0-9]/', $value)) {
- $this->error(self::INVALID_TYPE);
- return false;
- }
-
- // test for value less than one.
- if (intval($value) < 1) {
- $this->error(self::INVALID_NUMBER);
- return false;
- }
-
- return true;
- }
- }
# |
Change |
User |
Description |
Committed |
|
#1
|
18334 |
Liz Lam |
initial add of jambox |
9 years ago
|
|