Completed
Push — master ( 57e9fb...792895 )
by Dieter
11:00 queued 03:24
created

OptionDetail   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 8
lcom 0
cbo 1
dl 0
loc 33
ccs 18
cts 18
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B __construct() 0 20 8
1
<?php
2
/**
3
 * amadeus-ws-client
4
 *
5
 * Copyright 2015 Amadeus Benelux NV
6
 *
7
 * Licensed under the Apache License, Version 2.0 (the "License");
8
 * you may not use this file except in compliance with the License.
9
 * You may obtain a copy of the License at
10
 *
11
 * http://www.apache.org/licenses/LICENSE-2.0
12
 *
13
 * Unless required by applicable law or agreed to in writing, software
14
 * distributed under the License is distributed on an "AS IS" BASIS,
15
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
 * See the License for the specific language governing permissions and
17
 * limitations under the License.
18
 *
19
 * @package Amadeus
20
 * @license https://opensource.org/licenses/Apache-2.0 Apache 2.0
21
 */
22
23
namespace Amadeus\Client\Struct\Fare\PricePnr13;
24
25
/**
26
 * OptionDetail
27
 *
28
 * @package Amadeus\Client\Struct\Fare\PricePnr13
29
 * @author  Dieter Devlieghere <[email protected]>
30
 */
31
class OptionDetail
32
{
33
    /**
34
     * @var CriteriaDetails[]
35
     */
36
    public $criteriaDetails = [];
37
38
    /**
39
     * OptionDetail constructor.
40
     *
41
     * @param string|array|null $options
42
     */
43 100
    public function __construct($options = null)
44
    {
45 100
        if ($options instanceof CriteriaDetails) {
46 4
            $this->criteriaDetails[] = $options;
47 98
        } elseif (is_string($options)) {
48 68
            $this->criteriaDetails[] = new CriteriaDetails($options);
49 72
        } elseif (is_array($options)) {
50 28
            foreach ($options as $option) {
51 28
                if ($option instanceof CriteriaDetails) {
52 4
                    $this->criteriaDetails[] = $option;
53 26
                } elseif (is_array($option)) {
54 8
                    foreach ($option as $optionType => $optionDescription) {
55 8
                        $this->criteriaDetails[] = new CriteriaDetails($optionType, $optionDescription);
56 4
                    }
57 4
                } else {
58 22
                    $this->criteriaDetails[] = new CriteriaDetails($option);
59
                }
60 14
            }
61 14
        }
62 100
    }
63
}
64