1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
/** |
4
|
|
|
* Moodle component manager. |
5
|
|
|
* |
6
|
|
|
* @author Luke Carrier <[email protected]> |
7
|
|
|
* @copyright 2016 Luke Carrier |
8
|
|
|
* @license GPL-3.0+ |
9
|
|
|
*/ |
10
|
|
|
|
11
|
|
|
namespace ComponentManager\Exception; |
12
|
|
|
|
13
|
|
|
use ComponentManager\Exception\AbstractException; |
14
|
|
|
|
15
|
|
|
/** |
16
|
|
|
* Invalid project exception. |
17
|
|
|
* |
18
|
|
|
* Raised during evaluation of a project file to indicate an integrity problem. |
19
|
|
|
*/ |
20
|
|
View Code Duplication |
class InvalidProjectException extends AbstractException { |
|
|
|
|
21
|
|
|
/** |
22
|
|
|
* Code: unknown platform. |
23
|
|
|
* |
24
|
|
|
* @var integer |
25
|
|
|
*/ |
26
|
|
|
const CODE_MISSING_PACKAGE_REPOSITORY = 1; |
27
|
|
|
|
28
|
|
|
/** |
29
|
|
|
* Code: invalid plugin type. |
30
|
|
|
* |
31
|
|
|
* @var integer |
32
|
|
|
*/ |
33
|
|
|
const CODE_INVALID_PLUGIN_TYPE = 2; |
34
|
|
|
|
35
|
|
|
/** |
36
|
|
|
* Code: decode failed. |
37
|
|
|
* |
38
|
|
|
* @var integer |
39
|
|
|
*/ |
40
|
|
|
const CODE_DECODE_FAILED = 3; |
41
|
|
|
|
42
|
|
|
/** |
43
|
|
|
* Code: missing component. |
44
|
|
|
* |
45
|
|
|
* @var integer |
46
|
|
|
*/ |
47
|
|
|
const CODE_MISSING_COMPONENT = 4; |
48
|
|
|
|
49
|
|
|
/** |
50
|
|
|
* Code: missing package repository cache. |
51
|
|
|
* |
52
|
|
|
* @var integer |
53
|
|
|
*/ |
54
|
|
|
const CODE_MISSING_PACKAGE_REPOSITORY_CACHE = 5; |
55
|
|
|
|
56
|
|
|
/** |
57
|
|
|
* Code: invalid Moodle component name. |
58
|
|
|
* |
59
|
|
|
* @var integer |
60
|
|
|
*/ |
61
|
|
|
const CODE_VALIDATION_FAILED = 6; |
62
|
|
|
|
63
|
|
|
/** |
64
|
|
|
* @inheritdoc AbstractException |
65
|
|
|
*/ |
66
|
|
|
public function getExceptionType() { |
67
|
|
|
return 'InvalidProjectException'; |
68
|
|
|
} |
69
|
|
|
|
70
|
|
|
/** |
71
|
|
|
* @inheritdoc AbstractException |
72
|
|
|
*/ |
73
|
|
|
public function getExceptionCodeName() { |
74
|
|
|
switch ($this->code) { |
75
|
|
|
case static::CODE_MISSING_PACKAGE_REPOSITORY: |
76
|
|
|
return 'Missing package repository'; |
77
|
|
|
|
78
|
|
|
case static::CODE_INVALID_PLUGIN_TYPE: |
79
|
|
|
return 'Invalid plugin type'; |
80
|
|
|
|
81
|
|
|
case static::CODE_DECODE_FAILED: |
82
|
|
|
return 'Failed to decode project file; is it valid?'; |
83
|
|
|
|
84
|
|
|
case static::CODE_MISSING_COMPONENT: |
85
|
|
|
return 'A required component could not be found in the specified package repository'; |
86
|
|
|
|
87
|
|
|
case static::CODE_MISSING_PACKAGE_REPOSITORY_CACHE: |
88
|
|
|
return 'A package repository was missing its cache'; |
89
|
|
|
|
90
|
|
|
case static::CODE_VALIDATION_FAILED: |
91
|
|
|
return 'Validation of the project file contents failed'; |
92
|
|
|
} |
93
|
|
|
} |
94
|
|
|
} |
95
|
|
|
|
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.