<?php

namespace Sabre\OTAAirRules\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for OptionalQualifiers Structs
 * @subpackage Structs
 */
class OptionalQualifiers extends AbstractStructBase
{
    /**
     * The PricingQualifiers
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\OTAAirRules\Structs\PricingQualifiers
     */
    public $PricingQualifiers;
    /**
     * The TravelDateOptions
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\OTAAirRules\Structs\TravelDateOptions
     */
    public $TravelDateOptions;
    /**
     * Constructor method for OptionalQualifiers
     * @uses OptionalQualifiers::setPricingQualifiers()
     * @uses OptionalQualifiers::setTravelDateOptions()
     * @param \Sabre\OTAAirRules\Structs\PricingQualifiers $pricingQualifiers
     * @param \Sabre\OTAAirRules\Structs\TravelDateOptions $travelDateOptions
     */
    public function __construct(\Sabre\OTAAirRules\Structs\PricingQualifiers $pricingQualifiers = null, \Sabre\OTAAirRules\Structs\TravelDateOptions $travelDateOptions = null)
    {
        $this
            ->setPricingQualifiers($pricingQualifiers)
            ->setTravelDateOptions($travelDateOptions);
    }
    /**
     * Get PricingQualifiers value
     * @return \Sabre\OTAAirRules\Structs\PricingQualifiers|null
     */
    public function getPricingQualifiers()
    {
        return $this->PricingQualifiers;
    }
    /**
     * Set PricingQualifiers value
     * @param \Sabre\OTAAirRules\Structs\PricingQualifiers $pricingQualifiers
     * @return \Sabre\OTAAirRules\Structs\OptionalQualifiers
     */
    public function setPricingQualifiers(\Sabre\OTAAirRules\Structs\PricingQualifiers $pricingQualifiers = null)
    {
        $this->PricingQualifiers = $pricingQualifiers;
        return $this;
    }
    /**
     * Get TravelDateOptions value
     * @return \Sabre\OTAAirRules\Structs\TravelDateOptions|null
     */
    public function getTravelDateOptions()
    {
        return $this->TravelDateOptions;
    }
    /**
     * Set TravelDateOptions value
     * @param \Sabre\OTAAirRules\Structs\TravelDateOptions $travelDateOptions
     * @return \Sabre\OTAAirRules\Structs\OptionalQualifiers
     */
    public function setTravelDateOptions(\Sabre\OTAAirRules\Structs\TravelDateOptions $travelDateOptions = null)
    {
        $this->TravelDateOptions = $travelDateOptions;
        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\OTAAirRules\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__;
    }
}
