Code Duplication    Length = 66-72 lines in 2 locations

src/Amadeus/Client/Struct/Fare/InformativePricingWithoutPNR13.php 1 location

@@ 41-112 (lines=72) @@
38
 * @package Amadeus\Client\Struct\Fare
39
 * @author Dieter Devlieghere <[email protected]>
40
 */
41
class InformativePricingWithoutPNR13 extends BaseWsMessage
42
{
43
    /**
44
     * @var OriginatorGroup
45
     */
46
    public $originatorGroup;
47
48
    /**
49
     * @var PassengersGroup[]
50
     */
51
    public $passengersGroup = [];
52
53
    /**
54
     * @var SegmentGroup[]
55
     */
56
    public $segmentGroup = [];
57
58
    /**
59
     * @var PricingOptionGroup[]
60
     */
61
    public $pricingOptionGroup = [];
62
63
    /**
64
     * InformativePricingWithoutPNR13 constructor.
65
     *
66
     * @param FareInformativePricingWithoutPnrOptions|null $options
67
     */
68
    public function __construct($options)
69
    {
70
        if (!is_null($options)) {
71
            $this->loadPassengers($options->passengers);
72
73
            $this->loadSegments($options->segments);
74
75
            $this->loadPricingOptions($options->pricingOptions);
76
        }
77
    }
78
79
    /**
80
     * @param Passenger[] $passengers
81
     */
82
    protected function loadPassengers($passengers)
83
    {
84
        $counter = 1;
85
86
        foreach ($passengers as $passenger) {
87
            $this->passengersGroup[] = new PassengersGroup($passenger, $counter);
88
            $counter++;
89
        }
90
    }
91
92
    /**
93
     * @param Segment[] $segments
94
     */
95
    protected function loadSegments($segments)
96
    {
97
        foreach ($segments as $segment) {
98
            $this->segmentGroup[] = new SegmentGroup($segment);
99
        }
100
    }
101
102
    /**
103
     * @param PricingOptions|null $pricingOptions
104
     */
105
    protected function loadPricingOptions($pricingOptions)
106
    {
107
        if (!($pricingOptions instanceof PricingOptions)) {
108
            $pricingOptions = new PricingOptions();
109
        }
110
        $this->pricingOptionGroup = PricePNRWithBookingClass13::loadPricingOptionsFromRequestOptions($pricingOptions);
111
    }
112
}
113

src/Amadeus/Client/Struct/Service/StandaloneCatalogue.php 1 location

@@ 40-105 (lines=66) @@
37
 * @package Amadeus\Client\Struct\Fare
38
 * @author StandaloneCatalogue.php
39
 */
40
class StandaloneCatalogue extends BaseWsMessage
41
{
42
     /**
43
     * @var passengerInfoGroup[]
44
     */
45
    public $passengerInfoGroup = [];
46
47
    /**
48
     * @var flightInfo[]
49
     */
50
    public $flightInfo = [];
51
52
    /**
53
     * @var pricingOption[]
54
     */
55
    public $pricingOption = [];
56
57
    /**
58
     * StandaloneCatalogue constructor.
59
     *
60
     * @param ServiceStandaloneCatalogueOptions|null $options
61
     */
62
    public function __construct($options)
63
    {
64
        if (!is_null($options)) {
65
           	$this->loadPassengers($options->passengers);
66
           			
67
            $this->loadflightDetails($options->segments);
68
69
            $this->loadPricingOptions($options->pricingOptions);
70
        }
71
    }
72
73
    /**
74
     * @param Passenger[] $passengers
75
     */
76
    protected function loadPassengers($passengers)
77
    {
78
        $counter = 1;
79
		foreach ($passengers as $passenger) {
80
            $this->passengerInfoGroup[] = new PassengerInfoGroup($passenger, $counter);
81
            $counter++;
82
        }
83
    }
84
85
    /**
86
     * @param Segment[] $segments
87
     */
88
    protected function loadflightDetails($segments)
89
    {
90
        foreach ($segments as $segment) {
91
            $this->flightInfo[] = new flightInfo($segment);
92
        }
93
    }
94
95
    /**
96
     * @param PricingOptions|null $pricingOptions
97
     */
98
    protected function loadPricingOptions($pricingOptions)
99
    {
100
        if (!($pricingOptions instanceof PricingOptions)) {
101
            $pricingOptions = new PricingOptions();
102
        }
103
        $this->pricingOption = IntegratedPricing::loadPricingOptions($pricingOptions);
104
    }
105
}
106