class LinkTitleRequiredConstraintValidator

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

Hierarchy

Expanded class hierarchy of LinkTitleRequiredConstraintValidator

1 file declares its use of LinkTitleRequiredConstraintValidator
LinkTitleRequiredConstraintValidatorTest.php in core/modules/link/tests/src/Unit/Plugin/Validation/Constraint/LinkTitleRequiredConstraintValidatorTest.php

File

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

Namespace

Drupal\link\Plugin\Validation\Constraint
View source
class LinkTitleRequiredConstraintValidator extends ConstraintValidator {
  
  /**
   * {@inheritdoc}
   */
  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();
    }
  }

}

Members

Title Sort descending Modifiers Object type Summary
LinkTitleRequiredConstraintValidator::validate public function

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