Completed
Push — master ( 4cd686...a44c06 )
by Andreas
05:44
created

exception::range()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
ccs 0
cts 2
cp 0
crap 2
rs 10
c 1
b 0
f 0
1
<?php
2
/**
3
 * @author CONTENT CONTROL http://www.contentcontrol-berlin.de/
4
 * @copyright CONTENT CONTROL http://www.contentcontrol-berlin.de/
5
 * @license http://www.gnu.org/licenses/gpl.html GNU General Public License
6
 */
7
namespace midgard\portable\api\error;
8
9
use midgard\portable\storage\connection;
10
use midgard_connection;
11
use Exception as base_exception;
12
13
class exception extends base_exception
14
{
15
    const OK = 0;
16
    const ERROR = -1;
17
    const ACCESS_DENIED = -2;
18
    const NO_METADATA = -3;
19
    const NOT_OBJECT = -4;
20
    const NOT_EXISTS = -5;
21
    const INVALID_NAME = -6;
22
    const DUPLICATE = -7;
23
    const HAS_DEPENDANTS = -8;
24
    const RANGE = -9;
25
    const NOT_CONNECTED = -10;
26
    const SG_NOTFOUND = -11;
27
    const INVALID_OBJECT = -12;
28
    const QUOTA = -13;
29
    const INTERNAL = -14;
30
    const OBJECT_NAME_EXISTS = -15;
31
    const OBJECT_NO_STORAGE = -16;
32
    const OBJECT_NO_PARENT = -17;
33
    const INVALID_PROPERTY_VALUE = -18;
34
    const INVALID_PROPERTY = -19;
35
    const USER_DATA = -20;
36
    const OBJECT_DELETED = -21;
37
    const OBJECT_PURGED = -22;
38
    const OBJECT_EXPORTED = -23;
39
    const OBJECT_IMPORTED = -24;
40
    const MISSED_DEPENDENCE = -25;
41
    const TREE_IS_CIRCULAR = -26;
42
    const OBJECT_IS_LOCKED = -27;
43
44
    private static $messages = array
45
    (
46
        self::OK => "MGD_ERR_OK",
47
        self::ACCESS_DENIED => "Access Denied.",
48
        self::NO_METADATA => "Metadata class not defined.",
49
        self::NOT_OBJECT => "Not Midgard Object.",
50
        self::NOT_EXISTS => "Object does not exist.",
51
        self::INVALID_NAME => "Invalid characters in object's name.",
52
        self::DUPLICATE => "Object already exist.",
53
        self::HAS_DEPENDANTS => "Object has dependants.",
54
        self::RANGE => "Date range error.",
55
        self::NOT_CONNECTED => "Not connected to the Midgard database.",
56
        self::SG_NOTFOUND => "Sitegroup not found.",
57
        self::INVALID_OBJECT => "Object not registered as Midgard Object.",
58
        self::QUOTA => "Quota limit reached.",
59
        self::INTERNAL => "Critical internal error. ",
60
        self::OBJECT_NAME_EXISTS => "Object with such name exists in tree.",
61
        self::OBJECT_NO_STORAGE => "Storage table not defined for object.",
62
        self::OBJECT_NO_PARENT => "Parent object in tree not defined.",
63
        self::INVALID_PROPERTY_VALUE => "Invalid property value.",
64
        self::INVALID_PROPERTY => "Invalid property.",
65
        self::USER_DATA => "",
66
        self::OBJECT_DELETED => "Object deleted.",
67
        self::OBJECT_PURGED => "Object purged.",
68
        self::OBJECT_EXPORTED => "Object already exported.",
69
        self::OBJECT_IMPORTED => "Object already imported.",
70
        self::MISSED_DEPENDENCE => "Missed dependence for object.",
71
        self::TREE_IS_CIRCULAR => "Circular reference found in object's tree.",
72
        self::OBJECT_IS_LOCKED => "Object is locked",
73
    );
74
75 34
    public function __construct($message = "Undefined error", $code = self::ERROR, base_exception $previous = null)
76
    {
77 34
        midgard_connection::get_instance()->set_error($code);
78 34
        midgard_connection::get_instance()->set_error_string($message);
79 34
        parent::__construct($message);
80 34
    }
81
82 3
    public static function ok()
83
    {
84 3
        return new self(self::$messages[self::OK], self::OK);
85
    }
86
87 4
    public static function access_denied()
88
    {
89 4
        return new self(self::$messages[self::ACCESS_DENIED], self::ACCESS_DENIED);
90
    }
91
92
    public static function no_metadata()
93
    {
94
        return new self(self::$messages[self::NO_METADATA], self::NO_METADATA);
95
    }
96
97
    public static function not_object()
98
    {
99
        return new self(self::$messages[self::NOT_OBJECT], self::NOT_OBJECT);
100
    }
101
102 11
    public static function not_exists()
103
    {
104 11
        return new self(self::$messages[self::NOT_EXISTS], self::NOT_EXISTS);
105
    }
106
107
    public static function invalid_name()
108
    {
109
        return new self(self::$messages[self::INVALID_NAME], self::INVALID_NAME);
110
    }
111
112 3
    public static function duplicate()
113
    {
114 3
        return new self(self::$messages[self::DUPLICATE], self::DUPLICATE);
115
    }
116
117 5
    public static function has_dependants()
118
    {
119 5
        return new self(self::$messages[self::HAS_DEPENDANTS], self::HAS_DEPENDANTS);
120
    }
121
122
    public static function range()
123
    {
124
        return new self(self::$messages[self::RANGE], self::RANGE);
125
    }
126
127
    public static function not_connected()
128
    {
129
        return new self(self::$messages[self::NOT_CONNECTED], self::NOT_CONNECTED);
130
    }
131
132
    public static function sg_notfound()
133
    {
134
        return new self(self::$messages[self::SG_NOTFOUND], self::SG_NOTFOUND);
135
    }
136
137
    public static function invalid_object()
138
    {
139
        return new self(self::$messages[self::INVALID_OBJECT], self::INVALID_OBJECT);
140
    }
141
142
    public static function quota()
143
    {
144
        return new self(self::$messages[self::QUOTA], self::QUOTA);
145
    }
146
147 1
    public static function internal(base_exception $exception)
148
    {
149 1
        $message = self::$messages[self::INTERNAL];
150 1
        connection::log()->critical($message, array('exception' => $exception));
151 1
        return new self($message . '. ' . $exception->getMessage(), self::INTERNAL, $exception);
152
    }
153
154 2
    public static function object_name_exists()
155
    {
156 2
        return new self(self::$messages[self::OBJECT_NAME_EXISTS], self::OBJECT_NAME_EXISTS);
157
    }
158
159
    public static function object_no_storage()
160
    {
161
        return new self(self::$messages[self::OBJECT_NO_STORAGE], self::OBJECT_NO_STORAGE);
162
    }
163
164 1
    public static function object_no_parent()
165
    {
166 1
        return new self(self::$messages[self::OBJECT_NO_PARENT], self::OBJECT_NO_PARENT);
167
    }
168
169 6
    public static function invalid_property_value($message = null)
170
    {
171 6
        if ($message == null)
172 6
        {
173 4
            $message = self::$messages[self::INVALID_PROPERTY_VALUE];
174 4
        }
175 6
        return new self($message, self::INVALID_PROPERTY_VALUE);
176
    }
177
178
    public static function invalid_property()
179
    {
180
        return new self(self::$messages[self::INVALID_PROPERTY], self::INVALID_PROPERTY);
181
    }
182
183
    public static function user_data($message = 'Unknown error')
184
    {
185
        return new self($message, self::USER_DATA);
186
    }
187
188 1
    public static function object_deleted()
189
    {
190 1
        return new self(self::$messages[self::OBJECT_DELETED], self::OBJECT_DELETED);
191
    }
192
193 3
    public static function object_purged()
194
    {
195 3
        return new self(self::$messages[self::OBJECT_PURGED], self::OBJECT_PURGED);
196
    }
197
198
    public static function object_exported()
199
    {
200
        return new self(self::$messages[self::OBJECT_EXPORTED], self::OBJECT_EXPORTED);
201
    }
202
203
    public static function object_imported()
204
    {
205
        return new self(self::$messages[self::OBJECT_IMPORTED], self::OBJECT_IMPORTED);
206
    }
207
208
    public static function missed_dependence()
209
    {
210
        return new self(self::$messages[self::MISSED_DEPENDENCE], self::MISSED_DEPENDENCE);
211
    }
212
213
    public static function tree_is_circular()
214
    {
215
        return new self(self::$messages[self::TREE_IS_CIRCULAR], self::TREE_IS_CIRCULAR);
216
    }
217
218 1
    public static function object_is_locked()
219
    {
220 1
        return new self(self::$messages[self::OBJECT_IS_LOCKED], self::OBJECT_IS_LOCKED);
221
    }
222
223 42
    public static function get_error_string($code)
224
    {
225 42
        if (!array_key_exists($code, self::$messages))
226 42
        {
227
            return "Undefined error";
228
        }
229 42
        return self::$messages[$code];
230
    }
231
}