protected function isValid($value)
{
if (!is_array($value)) {
throw new InvalidSubjectException('The given value was not an array.', 1324641197);
}
$password = trim(strval(array_shift($value)));
$repeatPassword = trim(strval(array_shift($value)));
$passwordNotEmptyValidator = new NotEmptyValidator();
$passwordNotEmptyValidatorResult = $passwordNotEmptyValidator->validate($password);
$repeatPasswordNotEmptyValidator = new NotEmptyValidator();
$repeatPasswordNotEmptyValidatorResult = $repeatPasswordNotEmptyValidator->validate($repeatPassword);
if ($passwordNotEmptyValidatorResult->hasErrors() === true && $repeatPasswordNotEmptyValidatorResult->hasErrors() === true) {
if (!isset($this->options['allowEmpty']) || isset($this->options['allowEmpty']) && intval($this->options['allowEmpty']) === 0) {
$this->addError('The given password was empty.', 1324641097);
}
return;
}
if (strcmp($password, $repeatPassword) !== 0) {
$this->addError('The passwords did not match.', 1324640997);
return;
}
$stringLengthValidator = new StringLengthValidator(array('minimum' => $this->options['minimum'], 'maximum' => $this->options['maximum']));
$stringLengthValidatorResult = $stringLengthValidator->validate($password);
if ($stringLengthValidatorResult->hasErrors() === true) {
foreach ($stringLengthValidatorResult->getErrors() as $error) {
$this->result->addError($error);
}
}
}