Skip to content
Snippets Groups Projects
Commit 9fb17ac7 authored by Theresa Grannum's avatar Theresa Grannum Committed by Adam G-H
Browse files

Issue #3260662 by Theresa.Grannum: Move validation support into PreOperationStageEvent

parent 35fd4e35
No related branches found
No related tags found
1 merge request!185Issue #3260662: Move validation support into PreOperationStageEvent
...@@ -10,6 +10,32 @@ use Drupal\package_manager\ValidationResult; ...@@ -10,6 +10,32 @@ use Drupal\package_manager\ValidationResult;
*/ */
abstract class PreOperationStageEvent extends StageEvent { abstract class PreOperationStageEvent extends StageEvent {
/**
* The validation results.
*
* @var \Drupal\package_manager\ValidationResult[]
*/
protected $results = [];
/**
* Gets the validation results.
*
* @param int|null $severity
* (optional) The severity for the results to return. Should be one of the
* SystemManager::REQUIREMENT_* constants.
*
* @return \Drupal\package_manager\ValidationResult[]
* The validation results.
*/
public function getResults(?int $severity = NULL): array {
if ($severity !== NULL) {
return array_filter($this->results, function ($result) use ($severity) {
return $result->getSeverity() === $severity;
});
}
return $this->results;
}
/** /**
* Adds error information to the event. * Adds error information to the event.
*/ */
......
...@@ -10,13 +10,6 @@ use Symfony\Contracts\EventDispatcher\Event; ...@@ -10,13 +10,6 @@ use Symfony\Contracts\EventDispatcher\Event;
*/ */
abstract class StageEvent extends Event { abstract class StageEvent extends Event {
/**
* The validation results.
*
* @var \Drupal\package_manager\ValidationResult[]
*/
protected $results = [];
/** /**
* The stage which fired this event. * The stage which fired this event.
* *
...@@ -44,23 +37,4 @@ abstract class StageEvent extends Event { ...@@ -44,23 +37,4 @@ abstract class StageEvent extends Event {
return $this->stage; return $this->stage;
} }
/**
* Gets the validation results.
*
* @param int|null $severity
* (optional) The severity for the results to return. Should be one of the
* SystemManager::REQUIREMENT_* constants.
*
* @return \Drupal\package_manager\ValidationResult[]
* The validation results.
*/
public function getResults(?int $severity = NULL): array {
if ($severity !== NULL) {
return array_filter($this->results, function ($result) use ($severity) {
return $result->getSeverity() === $severity;
});
}
return $this->results;
}
} }
...@@ -14,6 +14,7 @@ use Drupal\package_manager\Event\PostRequireEvent; ...@@ -14,6 +14,7 @@ use Drupal\package_manager\Event\PostRequireEvent;
use Drupal\package_manager\Event\PreApplyEvent; use Drupal\package_manager\Event\PreApplyEvent;
use Drupal\package_manager\Event\PreCreateEvent; use Drupal\package_manager\Event\PreCreateEvent;
use Drupal\package_manager\Event\PreDestroyEvent; use Drupal\package_manager\Event\PreDestroyEvent;
use Drupal\package_manager\Event\PreOperationStageEvent;
use Drupal\package_manager\Event\PreRequireEvent; use Drupal\package_manager\Event\PreRequireEvent;
use Drupal\package_manager\Event\StageEvent; use Drupal\package_manager\Event\StageEvent;
use Drupal\package_manager\Exception\StageException; use Drupal\package_manager\Exception\StageException;
...@@ -341,9 +342,11 @@ class Stage { ...@@ -341,9 +342,11 @@ class Stage {
try { try {
$this->eventDispatcher->dispatch($event); $this->eventDispatcher->dispatch($event);
$results = $event->getResults(); if ($event instanceof PreOperationStageEvent) {
if ($results) { $results = $event->getResults();
$error = new StageValidationException($results); if ($results) {
$error = new StageValidationException($results);
}
} }
} }
catch (\Throwable $error) { catch (\Throwable $error) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment