Completed
Branch dev-0.1.x (cbb4c7)
by Josué
06:10
created

OracleSqlStateCode::getSqlStateErrorCode()   D

Complexity

Conditions 168
Paths 101

Size

Total Lines 162
Code Lines 158

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 41
CRAP Score 11702.6881

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 162
ccs 41
cts 159
cp 0.2579
rs 4.1719
cc 168
eloc 158
nc 101
nop 1
crap 11702.6881

How to fix   Long Method    Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
namespace Jpina\PdoOci8;
4
5
use Jpina\PdoOci8\SqlStateCode;
6
7
class OracleSqlStateCode
8
{
9
    private function __construct()
10
    {
11
    }
12
13
    /**
14
     * @param int $errorCode
15
     * @return string
16
     * @see https://docs.oracle.com/cd/F49540_01/DOC/server.815/a58231/appd.htm
17
     */
18 3
    public static function getSqlStateErrorCode($errorCode)
19
    {
20 3
        switch (true) {
21 3
            case $errorCode === 0:
22 1
                return SqlStateCode::SUCCESSFUL_COMPLETION;
23 2
            case $errorCode === 1095 || $errorCode === 1403:
24
                return SqlStateCode::NO_DATA;
25 2
            case $errorCode === 2126:
26
                return SqlStateCode::INVALID_DESCRIPTOR_COUNT;
27 2
            case $errorCode === 2121:
28
                return SqlStateCode::CONNECTION_DOES_NOT_EXIST;
29 2
            case $errorCode >= 3000 && $errorCode <= 3099:
30
                return SqlStateCode::FEATURE_NOT_SUPPORTED;
31 2
            case $errorCode === 1427 || $errorCode === 2112:
32
                return SqlStateCode::CARDINALITY_VIOLATION;
33 2
            case $errorCode === 1401 || $errorCode === 1406:
34
                return SqlStateCode::STRING_DATA_RIGHT_TRUNCATION;
35 2
            case $errorCode === 1405 || $errorCode === 2124:
36
                return SqlStateCode::INDICATOR_VARIABLE_NOT_SUPPLIED;
37 2
            case $errorCode === 1426 || $errorCode === 1438:
38 2
            case $errorCode === 1455 || $errorCode === 1457:
39
                return SqlStateCode::NUMERIC_VALUE_OUT_OF_RANGE;
40 2
            case $errorCode >= 1800 && $errorCode <= 1899:
41
                return SqlStateCode::DATETIME_FIELD_OVERFLOW;
42 2
            case $errorCode === 1476:
43
                return SqlStateCode::DIVISION_BY_ZERO;
44 2
            case $errorCode === 911 || $errorCode === 1425:
45
                return SqlStateCode::INVALID_ESCAPE_CHAR;
46 2
            case $errorCode === 1411:
47
                return SqlStateCode::INDICATOR_OVERFLOW;
48 2
            case $errorCode === 1025 || $errorCode === 1488:
49 2
            case $errorCode >= 4000 && $errorCode <= 4019:
50
                return SqlStateCode::INVALID_PARAM_VALUE;
51 2
            case $errorCode >= 1479 && $errorCode <= 1480:
52
                return SqlStateCode::UNTERMINATED_C_STRING;
53 2
            case $errorCode === 1424:
54
                return SqlStateCode::INVALID_ESCAPE_SEQUENCE;
55 2
            case $errorCode === 1:
56 2
            case $errorCode >= 2290 && $errorCode <= 2299:
57
                return SqlStateCode::INTEGRITY_CONSTRAINT_VIOLATION_1;
58 2
            case $errorCode >= 1001 && $errorCode <= 1003:
59 2
            case $errorCode === 1410 || $errorCode === 8006:
60 2
            case $errorCode === 2114 || $errorCode === 2117:
61 2
            case $errorCode === 2118 || $errorCode === 2122:
62
                return SqlStateCode::INVALID_CURSOR_STATE;
63 2
            case $errorCode === 2091 || $errorCode === 2092:
64
                return SqlStateCode::TRANSACTION_ROLLBACK;
65 2
            case $errorCode === 22 || $errorCode === 251:
66 2
            case $errorCode >= 900 && $errorCode <= 999:
67 2
            case $errorCode === 1031:
68 2
            case $errorCode >= 1490 && $errorCode <= 1493:
69 2
            case $errorCode >= 1700 && $errorCode <= 1799:
70 2
            case $errorCode >= 1900 && $errorCode <= 2099:
71 2
            case $errorCode >= 2140 && $errorCode <= 2289:
72 2
            case $errorCode >= 2420 && $errorCode <= 2424:
73 2
            case $errorCode >= 2450 && $errorCode <= 2499:
74 2
            case $errorCode >= 3276 && $errorCode <= 3299:
75 2
            case $errorCode >= 4040 && $errorCode <= 4059:
76 2
            case $errorCode >= 4070 && $errorCode <= 4099:
77 2
                return SqlStateCode::SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION_3;
78
            case $errorCode === 1402:
79
                return SqlStateCode::WITH_CHECK_OPTION_VIOLATION;
80
            case $errorCode >= 370 && $errorCode <= 429:
81
            case $errorCode >= 600 && $errorCode <= 899:
82
            case $errorCode >= 6430 && $errorCode <= 6449:
83
            case $errorCode >= 7200 && $errorCode <= 7999:
84
            case $errorCode >= 9700 && $errorCode <= 9999:
85
                return SqlStateCode::SYSTEM_ERRORS;
86
            case $errorCode >= 18 && $errorCode <= 35:
87
            case $errorCode >= 50 && $errorCode <= 68:
88
            case $errorCode >= 2376 && $errorCode <= 2399:
89
            case $errorCode >= 4020 && $errorCode <= 4039:
90
                return SqlStateCode::RESOURCE_ERROR;
91
            case $errorCode >= 100 && $errorCode <= 120:
92
            case $errorCode >= 440 && $errorCode <= 569:
93
                return SqlStateCode::MULTI_THREADED_SERVER_OR_DETACHED_PROCESS_ERROR;
94
            case $errorCode >= 150 && $errorCode <= 159:
95
            case $errorCode === 2128:
96
            case $errorCode >= 2700 && $errorCode <= 2899:
97
            case $errorCode >= 3100 && $errorCode <= 3199:
98
            case $errorCode >= 6200 && $errorCode <= 6249:
99
                return SqlStateCode::ORACLE_XA_AND_2_TASK_INTERFACE_ERROR;
100
            case $errorCode >= 200 && $errorCode <= 369:
101
            case $errorCode >= 1100 && $errorCode <= 1250:
102
                return SqlStateCode::ARCHIVAL_AND_MEDIA_RECOVERY_ERROR;
103
            case $errorCode >= 6500 && $errorCode <= 6599:
104
                return SqlStateCode::PL_SQL_ERROR;
105
            case $errorCode >= 6000 && $errorCode <= 6149:
106
            case $errorCode >= 6250 && $errorCode <= 6429:
107
            case $errorCode >= 6600 && $errorCode <= 6999:
108
            case $errorCode >= 12100 && $errorCode <= 12299:
109
            case $errorCode >= 12500 && $errorCode <= 12599:
110
                return SqlStateCode::SQL_NET_DRIVER_ERROR;
111
            case $errorCode >= 430 && $errorCode <= 439:
112
                return SqlStateCode::LICENSING_ERROR;
113
            case $errorCode >= 570 && $errorCode <= 599:
114
            case $errorCode >= 7000 && $errorCode <= 7199:
115
                return SqlStateCode::SQL_CONNECT_ERROR;
116
            case $errorCode >= 1000 && $errorCode <= 1099:
117
            case $errorCode >= 1400 && $errorCode <= 1489:
118
            case $errorCode >= 1495 && $errorCode <= 1499:
119
            case $errorCode >= 1500 && $errorCode <= 1699:
120
            case $errorCode >= 2400 && $errorCode <= 2419:
121
            case $errorCode >= 2425 && $errorCode <= 2449:
122
            case $errorCode >= 4060 && $errorCode <= 4069:
123
            case $errorCode >= 8000 && $errorCode <= 8190:
124
            case $errorCode >= 12000 && $errorCode <= 12019:
125
            case $errorCode >= 12300 && $errorCode <= 12499:
126
            case $errorCode >= 12700 && $errorCode <= 21999:
127
                return SqlStateCode::SQL_EXECUTE_PHASE_ERROR;
128
            case $errorCode === 2100:
129
                return SqlStateCode::OUT_OF_MEMORY;
130
            case $errorCode === 2101:
131
                return SqlStateCode::INCONSISTENT_CURSOR_CACHE_MISMATCH;
132
            case $errorCode === 2102:
133
                return SqlStateCode::INCONSISTENT_CURSOR_CACHE_NO_ENTRY;
134
            case $errorCode === 2103:
135
                return SqlStateCode::INCONSISTENT_CURSOR_CACHE_REF_OUT_OF_RANGE;
136
            case $errorCode === 2104:
137
                return SqlStateCode::INCONSISTENT_HOST_CACHE_NOT_AVAILABLE;
138
            case $errorCode === 2105:
139
                return SqlStateCode::INCONSISTENT_CURSOR_CACHE_NOT_FOUND;
140
            case $errorCode === 2106:
141
                return SqlStateCode::INCONSISTENT_CURSOR_CACHE_INVALID_NUMBER;
142
            case $errorCode === 2107:
143
                return SqlStateCode::PROGRAM_TOO_OLD;
144
            case $errorCode === 2108:
145
                return SqlStateCode::INVALID_DESCRIPTOR_PASSED;
146
            case $errorCode === 2109:
147
                return SqlStateCode::INCONSISTENT_HOST_CACHE_REF_OUT_OF_RANGE;
148
            case $errorCode === 2110:
149
                return SqlStateCode::INCONSISTENT_HOST_CACHE_INVALID_ENTRY_TYPE;
150
            case $errorCode === 2111:
151
                return SqlStateCode::HEAP_CONSISTENCY_ERROR;
152
            case $errorCode === 2113:
153
                return SqlStateCode::UNABLE_TO_OPEN_MESSAGE_FILE;
154
            case $errorCode === 2115:
155
                return SqlStateCode::CODE_GENERATION_INTERNAL_CONSISTENCY_FAILED;
156
            case $errorCode === 2116:
157
                return SqlStateCode::REENTRANT_CODE_GENERATOR_GAVE_INVALID_CONTEXT;
158
            case $errorCode === 2119:
159
                return SqlStateCode::INVALID_HSTDEF_ARGUMENT;
160
            case $errorCode === 2120:
161
                return SqlStateCode::FIRST_AND_SECOND_ARGS_TO_SQLRCN_BOTH_NULL;
162
            case $errorCode === 2122:
163
                return SqlStateCode::INVALID_OPEN_OR_PREPARE;
164
            case $errorCode === 2123:
165
                return SqlStateCode::APPLICATION_CONTEXT_NOT_FOUND;
166
            case $errorCode === 2125:
167
                return SqlStateCode::CONNECTION_ERROR_NO_ERROR_TEXT;
168
            case $errorCode === 2127:
169
                return SqlStateCode::PRECOMPILER_VERSION_MISMATCH;
170
            case $errorCode === 2129:
171
                return SqlStateCode::FETCHED_NUMBER_OF_BYTES_IS_ODD;
172
            case $errorCode === 2130:
173
                return SqlStateCode::EXEC_TOOLS_INTERFACE_NOT_AVAILABLE;
174
            case $errorCode >= 10000 && $errorCode <= 10999:
175
                return SqlStateCode::DEBUG_EVENTS;
176
        }
177
178
        return SqlStateCode::GENERAL_ERROR;
179
    }
180
}
181