host || $this->userInfo || $this->port) { return false; } if (empty($this->path)) { return false; } if (0 === strpos($this->path, '/')) { return false; } $validator = $this->getValidator(); return $validator->isValid($this->path); } /** * Set the email address * * This is in fact equivalent to setPath() - but provides a more clear interface * * @param string $email * @return Mailto */ public function setEmail($email) { return $this->setPath($email); } /** * Get the email address * * This is infact equivalent to getPath() - but provides a more clear interface * * @return string */ public function getEmail() { return $this->getPath(); } /** * Set validator to use when validating email address * * @param ValidatorInterface $validator * @return Mailto */ public function setValidator(ValidatorInterface $validator) { $this->emailValidator = $validator; return $this; } /** * Retrieve validator for use with validating email address * * If none is currently set, an EmailValidator instance with default options * will be used. * * @return ValidatorInterface */ public function getValidator() { if (null === $this->emailValidator) { $this->setValidator(new EmailValidator()); } return $this->emailValidator; } }