<?php

namespace Sabre\BargainFinderMax\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for StopAirport Structs
 * Meta informations extracted from the WSDL
 * - documentation: Stop point of flight segment.
 * @subpackage Structs
 */
class StopAirport extends ResponseLocationType
{
    /**
     * The _
     * @var \Sabre\BargainFinderMax\Structs\ResponseLocationType
     */
    public $_;
    /**
     * The ArrivalDateTime
     * Meta informations extracted from the WSDL
     * - documentation: This date should be of the form YYYY-MM-DDTHH:MM:SS
     * @var string
     */
    public $ArrivalDateTime;
    /**
     * The DepartureDateTime
     * Meta informations extracted from the WSDL
     * - documentation: This date should be of the form YYYY-MM-DDTHH:MM:SS
     * @var string
     */
    public $DepartureDateTime;
    /**
     * The ElapsedTime
     * Meta informations extracted from the WSDL
     * - documentation: Elapsed Time in minutes
     * @var int
     */
    public $ElapsedTime;
    /**
     * The Duration
     * Meta informations extracted from the WSDL
     * - documentation: Layover time in minutes
     * @var int
     */
    public $Duration;
    /**
     * The GMTOffset
     * @var float
     */
    public $GMTOffset;
    /**
     * The Equipment
     * @var string
     */
    public $Equipment;
    /**
     * Constructor method for StopAirport
     * @uses StopAirport::set_()
     * @uses StopAirport::setArrivalDateTime()
     * @uses StopAirport::setDepartureDateTime()
     * @uses StopAirport::setElapsedTime()
     * @uses StopAirport::setDuration()
     * @uses StopAirport::setGMTOffset()
     * @uses StopAirport::setEquipment()
     * @param \Sabre\BargainFinderMax\Structs\ResponseLocationType $_
     * @param string $arrivalDateTime
     * @param string $departureDateTime
     * @param int $elapsedTime
     * @param int $duration
     * @param float $gMTOffset
     * @param string $equipment
     */
    public function __construct(\Sabre\BargainFinderMax\Structs\ResponseLocationType $_ = null, $arrivalDateTime = null, $departureDateTime = null, $elapsedTime = null, $duration = null, $gMTOffset = null, $equipment = null)
    {
        $this
            ->set_($_)
            ->setArrivalDateTime($arrivalDateTime)
            ->setDepartureDateTime($departureDateTime)
            ->setElapsedTime($elapsedTime)
            ->setDuration($duration)
            ->setGMTOffset($gMTOffset)
            ->setEquipment($equipment);
    }
    /**
     * Get _ value
     * @return \Sabre\BargainFinderMax\Structs\ResponseLocationType|null
     */
    public function get_()
    {
        return $this->_;
    }
    /**
     * Set _ value
     * @param \Sabre\BargainFinderMax\Structs\ResponseLocationType $_
     * @return \Sabre\BargainFinderMax\Structs\StopAirport
     */
    public function set_(\Sabre\BargainFinderMax\Structs\ResponseLocationType $_ = null)
    {
        $this->_ = $_;
        return $this;
    }
    /**
     * Get ArrivalDateTime value
     * @return string|null
     */
    public function getArrivalDateTime()
    {
        return $this->ArrivalDateTime;
    }
    /**
     * Set ArrivalDateTime value
     * @param string $arrivalDateTime
     * @return \Sabre\BargainFinderMax\Structs\StopAirport
     */
    public function setArrivalDateTime($arrivalDateTime = null)
    {
        $this->ArrivalDateTime = $arrivalDateTime;
        return $this;
    }
    /**
     * Get DepartureDateTime value
     * @return string|null
     */
    public function getDepartureDateTime()
    {
        return $this->DepartureDateTime;
    }
    /**
     * Set DepartureDateTime value
     * @param string $departureDateTime
     * @return \Sabre\BargainFinderMax\Structs\StopAirport
     */
    public function setDepartureDateTime($departureDateTime = null)
    {
        $this->DepartureDateTime = $departureDateTime;
        return $this;
    }
    /**
     * Get ElapsedTime value
     * @return int|null
     */
    public function getElapsedTime()
    {
        return $this->ElapsedTime;
    }
    /**
     * Set ElapsedTime value
     * @param int $elapsedTime
     * @return \Sabre\BargainFinderMax\Structs\StopAirport
     */
    public function setElapsedTime($elapsedTime = null)
    {
        $this->ElapsedTime = $elapsedTime;
        return $this;
    }
    /**
     * Get Duration value
     * @return int|null
     */
    public function getDuration()
    {
        return $this->Duration;
    }
    /**
     * Set Duration value
     * @param int $duration
     * @return \Sabre\BargainFinderMax\Structs\StopAirport
     */
    public function setDuration($duration = null)
    {
        $this->Duration = $duration;
        return $this;
    }
    /**
     * Get GMTOffset value
     * @return float|null
     */
    public function getGMTOffset()
    {
        return $this->GMTOffset;
    }
    /**
     * Set GMTOffset value
     * @param float $gMTOffset
     * @return \Sabre\BargainFinderMax\Structs\StopAirport
     */
    public function setGMTOffset($gMTOffset = null)
    {
        $this->GMTOffset = $gMTOffset;
        return $this;
    }
    /**
     * Get Equipment value
     * @return string|null
     */
    public function getEquipment()
    {
        return $this->Equipment;
    }
    /**
     * Set Equipment value
     * @param string $equipment
     * @return \Sabre\BargainFinderMax\Structs\StopAirport
     */
    public function setEquipment($equipment = null)
    {
        $this->Equipment = $equipment;
        return $this;
    }
    /**
     * Method called when an object has been exported with var_export() functions
     * It allows to return an object instantiated with the values
     * @see AbstractStructBase::__set_state()
     * @uses AbstractStructBase::__set_state()
     * @param array $array the exported values
     * @return \Sabre\BargainFinderMax\Structs\StopAirport
     */
    public static function __set_state(array $array)
    {
        return parent::__set_state($array);
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
