*/ abstract class BasedValidator implements IValidator { /** * @var TValidator The internal validator */ private IValidator $internalValidator; /** * Create a validator * * @param TValidator $internalValidator The internal validator */ public function __construct (IValidator $internalValidator) { $this->internalValidator = $internalValidator; } /** * The internal validator * * @return TValidator The internal validator */ protected function getInternalValidator (): IValidator { return $this->internalValidator; } /** * @inheritDoc */ public function validate (mixed $value): bool { return $this->internalValidator->validate($value); } }