3 namespace Drupal\entityqueue\Plugin\Validation\Constraint;
5 use Symfony\Component\Validator\Constraint;
6 use Symfony\Component\Validator\ConstraintValidator;
9 * Validates the QueueSize constraint.
11 class QueueSizeConstraintValidator extends ConstraintValidator {
16 public function validate($entity, Constraint $constraint) {
17 $number_of_items = count($entity->items);
19 /** @var \Drupal\entityqueue\EntityQueueInterface $queue */
20 $queue = $entity->getQueue();
21 $min_size = $queue->getMinimumSize();
22 $max_size = $queue->getMaximumSize();
23 $act_as_queue = $queue->getActAsQueue();
25 // Do not allow less items than the minimum size.
26 if ($min_size && $number_of_items < $min_size) {
27 $this->context->buildViolation($constraint->messageMinSize, ['%min_size' => $min_size])
30 // Do not allow more items than the maximum size if the queue is not
31 // configured to act a simple list.
32 elseif (!$act_as_queue && $max_size && $number_of_items > $max_size) {
33 $this->context->buildViolation($constraint->messageMaxSize, ['%max_size' => $max_size])