function LinkTitleRequiredConstraintValidator::validate

File

core/modules/link/src/Plugin/Validation/Constraint/LinkTitleRequiredConstraintValidator.php, line 21

Class

LinkTitleRequiredConstraintValidator
Constraint validator for link title subfields if a URL was entered.

Namespace

Drupal\link\Plugin\Validation\Constraint

Code

public function validate($value, Constraint $constraint) : void {
  if (!$value instanceof LinkItemInterface) {
    throw new UnexpectedValueException($value, LinkItemInterface::class);
  }
  /** @var \Drupal\link\LinkItemInterface $link_item */
  $link_item = $value;
  $title_setting = $link_item->getFieldDefinition()
    ->getSetting('title');
  $title_visibility = LinkTitleVisibility::tryFrom((int) $title_setting);
  if ($title_visibility === LinkTitleVisibility::Required && $link_item->uri !== '' && $link_item->title === '') {
    $this->context
      ->buildViolation($constraint->message)
      ->atPath('title')
      ->addViolation();
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.