Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\migrate\Exception;
|
Chris@0
|
4
|
Chris@0
|
5 use Exception;
|
Chris@0
|
6
|
Chris@0
|
7 /**
|
Chris@14
|
8 * Defines an exception thrown when a migration does not meet the requirements.
|
Chris@0
|
9 *
|
Chris@0
|
10 * @see \Drupal\migrate\Plugin\RequirementsInterface
|
Chris@0
|
11 */
|
Chris@0
|
12 class RequirementsException extends \RuntimeException {
|
Chris@0
|
13
|
Chris@0
|
14 /**
|
Chris@0
|
15 * The missing requirements.
|
Chris@0
|
16 *
|
Chris@0
|
17 * @var array
|
Chris@0
|
18 */
|
Chris@0
|
19 protected $requirements;
|
Chris@0
|
20
|
Chris@0
|
21 /**
|
Chris@0
|
22 * Constructs a new RequirementsException instance.
|
Chris@0
|
23 *
|
Chris@0
|
24 * @param string $message
|
Chris@0
|
25 * (optional) The Exception message to throw.
|
Chris@0
|
26 * @param array $requirements
|
Chris@0
|
27 * (optional) The missing requirements.
|
Chris@0
|
28 * @param int $code
|
Chris@0
|
29 * (optional) The Exception code.
|
Chris@0
|
30 * @param \Exception $previous
|
Chris@0
|
31 * (optional) The previous exception used for the exception chaining.
|
Chris@0
|
32 */
|
Chris@0
|
33 public function __construct($message = "", array $requirements = [], $code = 0, Exception $previous = NULL) {
|
Chris@0
|
34 parent::__construct($message, $code, $previous);
|
Chris@0
|
35
|
Chris@0
|
36 $this->requirements = $requirements;
|
Chris@0
|
37 }
|
Chris@0
|
38
|
Chris@0
|
39 /**
|
Chris@0
|
40 * Get an array of requirements.
|
Chris@0
|
41 *
|
Chris@0
|
42 * @return array
|
Chris@0
|
43 * The requirements.
|
Chris@0
|
44 */
|
Chris@0
|
45 public function getRequirements() {
|
Chris@0
|
46 return $this->requirements;
|
Chris@0
|
47 }
|
Chris@0
|
48
|
Chris@0
|
49 /**
|
Chris@0
|
50 * Get the requirements as a string.
|
Chris@0
|
51 *
|
Chris@0
|
52 * @return string
|
Chris@0
|
53 * A formatted requirements string.
|
Chris@0
|
54 */
|
Chris@0
|
55 public function getRequirementsString() {
|
Chris@0
|
56 $output = '';
|
Chris@0
|
57 foreach ($this->requirements as $requirement_type => $requirements) {
|
Chris@0
|
58 if (!is_array($requirements)) {
|
Chris@0
|
59 $requirements = [$requirements];
|
Chris@0
|
60 }
|
Chris@0
|
61
|
Chris@0
|
62 foreach ($requirements as $value) {
|
Chris@0
|
63 $output .= "$requirement_type: $value. ";
|
Chris@0
|
64 }
|
Chris@0
|
65 }
|
Chris@0
|
66 return trim($output);
|
Chris@0
|
67 }
|
Chris@0
|
68
|
Chris@0
|
69 }
|