You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
918 B
PHP
39 lines
918 B
PHP
<?php
|
|
|
|
namespace jrosset\CliProgram\Validation\Validators;
|
|
|
|
/**
|
|
* An argument/option value validator based on another, internal, validator
|
|
*
|
|
* @template TValidator of IValidator
|
|
*/
|
|
abstract class BasedValidator implements IValidator {
|
|
/**
|
|
* @var TValidator The internal validator
|
|
*/
|
|
private $internalValidator;
|
|
|
|
/**
|
|
* Create a validator
|
|
*
|
|
* @param TValidator $internalValidator The internal validator
|
|
*/
|
|
public function __construct ($internalValidator) {
|
|
$this->internalValidator = $internalValidator;
|
|
}
|
|
/**
|
|
* The internal validator
|
|
*
|
|
* @return TValidator The internal validator
|
|
*/
|
|
protected function getInternalValidator () {
|
|
return $this->internalValidator;
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function validate (mixed $value): bool {
|
|
return $this->internalValidator->validate($value);
|
|
}
|
|
} |