Completed
Push — master ( fba866...b10a48 )
by Ori
03:03
created

SchemaLoadException::__construct()   B

Complexity

Conditions 7
Paths 4

Size

Total Lines 15
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 15
rs 8.2222
c 0
b 0
f 0
cc 7
eloc 12
nc 4
nop 3
1
<?php
2
namespace frictionlessdata\tableschema\Exceptions;
3
4
/**
5
 * error loading a table schema and converting it to native php object
6
 */
7
class SchemaLoadException extends \Exception
8
{
9
    /**
10
     * @param mixed $descriptor
11
     * @param mixed $descriptorSource
12
     * @param string $errorMessage
13
     */
14
    public function __construct($descriptor, $descriptorSource, $errorMessage)
15
    {
16
        if (!empty($descriptor) && empty($descriptorSource)) {
17
            $message = "error decoding descriptor ".json_encode($descriptor).": {$errorMessage}";
18
        } elseif (!empty($descriptor) && !empty($descriptorSource)) {
19
            $message = "error decoding descriptor from source ".json_encode($descriptorSource)
20
                ." - ".json_encode($descriptor).": {$errorMessage}";
21
        } elseif (empty($descriptor) && !empty($descriptorSource)) {
22
            $message = "error loading descriptor from source ".json_encode($descriptorSource)
23
                .": {$errorMessage}";
24
        } else {
25
            $message = "unexpected load error: {$errorMessage}";
26
        }
27
        parent::__construct($message);
28
    }
29
}