<?php

namespace Sabre\OTAAirSchedule\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for OptionalQualifiers Structs
 * @subpackage Structs
 */
class OptionalQualifiers extends AbstractStructBase
{
    /**
     * The AdditionalAvailability
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\OTAAirSchedule\Structs\AdditionalAvailability
     */
    public $AdditionalAvailability;
    /**
     * The FlightQualifiers
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\OTAAirSchedule\Structs\FlightQualifiers
     */
    public $FlightQualifiers;
    /**
     * The TimeQualifiers
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\OTAAirSchedule\Structs\TimeQualifiers
     */
    public $TimeQualifiers;
    /**
     * Constructor method for OptionalQualifiers
     * @uses OptionalQualifiers::setAdditionalAvailability()
     * @uses OptionalQualifiers::setFlightQualifiers()
     * @uses OptionalQualifiers::setTimeQualifiers()
     * @param \Sabre\OTAAirSchedule\Structs\AdditionalAvailability $additionalAvailability
     * @param \Sabre\OTAAirSchedule\Structs\FlightQualifiers $flightQualifiers
     * @param \Sabre\OTAAirSchedule\Structs\TimeQualifiers $timeQualifiers
     */
    public function __construct(\Sabre\OTAAirSchedule\Structs\AdditionalAvailability $additionalAvailability = null, \Sabre\OTAAirSchedule\Structs\FlightQualifiers $flightQualifiers = null, \Sabre\OTAAirSchedule\Structs\TimeQualifiers $timeQualifiers = null)
    {
        $this
            ->setAdditionalAvailability($additionalAvailability)
            ->setFlightQualifiers($flightQualifiers)
            ->setTimeQualifiers($timeQualifiers);
    }
    /**
     * Get AdditionalAvailability value
     * @return \Sabre\OTAAirSchedule\Structs\AdditionalAvailability|null
     */
    public function getAdditionalAvailability()
    {
        return $this->AdditionalAvailability;
    }
    /**
     * Set AdditionalAvailability value
     * @param \Sabre\OTAAirSchedule\Structs\AdditionalAvailability $additionalAvailability
     * @return \Sabre\OTAAirSchedule\Structs\OptionalQualifiers
     */
    public function setAdditionalAvailability(\Sabre\OTAAirSchedule\Structs\AdditionalAvailability $additionalAvailability = null)
    {
        $this->AdditionalAvailability = $additionalAvailability;
        return $this;
    }
    /**
     * Get FlightQualifiers value
     * @return \Sabre\OTAAirSchedule\Structs\FlightQualifiers|null
     */
    public function getFlightQualifiers()
    {
        return $this->FlightQualifiers;
    }
    /**
     * Set FlightQualifiers value
     * @param \Sabre\OTAAirSchedule\Structs\FlightQualifiers $flightQualifiers
     * @return \Sabre\OTAAirSchedule\Structs\OptionalQualifiers
     */
    public function setFlightQualifiers(\Sabre\OTAAirSchedule\Structs\FlightQualifiers $flightQualifiers = null)
    {
        $this->FlightQualifiers = $flightQualifiers;
        return $this;
    }
    /**
     * Get TimeQualifiers value
     * @return \Sabre\OTAAirSchedule\Structs\TimeQualifiers|null
     */
    public function getTimeQualifiers()
    {
        return $this->TimeQualifiers;
    }
    /**
     * Set TimeQualifiers value
     * @param \Sabre\OTAAirSchedule\Structs\TimeQualifiers $timeQualifiers
     * @return \Sabre\OTAAirSchedule\Structs\OptionalQualifiers
     */
    public function setTimeQualifiers(\Sabre\OTAAirSchedule\Structs\TimeQualifiers $timeQualifiers = null)
    {
        $this->TimeQualifiers = $timeQualifiers;
        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\OTAAirSchedule\Structs\OptionalQualifiers
     */
    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__;
    }
}
