<?php

namespace Sabre\EnhancedAirBook\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for FOP_Qualifiers Structs
 * @subpackage Structs
 */
class FOP_Qualifiers extends AbstractStructBase
{
    /**
     * The BasicFOP
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\EnhancedAirBook\Structs\BasicFOP
     */
    public $BasicFOP;
    /**
     * The BSP_Ticketing
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\EnhancedAirBook\Structs\BSP_Ticketing
     */
    public $BSP_Ticketing;
    /**
     * The MultipleCC_FOP
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\EnhancedAirBook\Structs\MultipleCC_FOP
     */
    public $MultipleCC_FOP;
    /**
     * The SabreSonicTicketing
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\EnhancedAirBook\Structs\SabreSonicTicketing
     */
    public $SabreSonicTicketing;
    /**
     * The IgnoreStoredFOP
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var bool
     */
    public $IgnoreStoredFOP;
    /**
     * Constructor method for FOP_Qualifiers
     * @uses FOP_Qualifiers::setBasicFOP()
     * @uses FOP_Qualifiers::setBSP_Ticketing()
     * @uses FOP_Qualifiers::setMultipleCC_FOP()
     * @uses FOP_Qualifiers::setSabreSonicTicketing()
     * @uses FOP_Qualifiers::setIgnoreStoredFOP()
     * @param \Sabre\EnhancedAirBook\Structs\BasicFOP $basicFOP
     * @param \Sabre\EnhancedAirBook\Structs\BSP_Ticketing $bSP_Ticketing
     * @param \Sabre\EnhancedAirBook\Structs\MultipleCC_FOP $multipleCC_FOP
     * @param \Sabre\EnhancedAirBook\Structs\SabreSonicTicketing $sabreSonicTicketing
     * @param bool $ignoreStoredFOP
     */
    public function __construct(\Sabre\EnhancedAirBook\Structs\BasicFOP $basicFOP = null, \Sabre\EnhancedAirBook\Structs\BSP_Ticketing $bSP_Ticketing = null, \Sabre\EnhancedAirBook\Structs\MultipleCC_FOP $multipleCC_FOP = null, \Sabre\EnhancedAirBook\Structs\SabreSonicTicketing $sabreSonicTicketing = null, $ignoreStoredFOP = null)
    {
        $this
            ->setBasicFOP($basicFOP)
            ->setBSP_Ticketing($bSP_Ticketing)
            ->setMultipleCC_FOP($multipleCC_FOP)
            ->setSabreSonicTicketing($sabreSonicTicketing)
            ->setIgnoreStoredFOP($ignoreStoredFOP);
    }
    /**
     * Get BasicFOP value
     * @return \Sabre\EnhancedAirBook\Structs\BasicFOP|null
     */
    public function getBasicFOP()
    {
        return $this->BasicFOP;
    }
    /**
     * Set BasicFOP value
     * @param \Sabre\EnhancedAirBook\Structs\BasicFOP $basicFOP
     * @return \Sabre\EnhancedAirBook\Structs\FOP_Qualifiers
     */
    public function setBasicFOP(\Sabre\EnhancedAirBook\Structs\BasicFOP $basicFOP = null)
    {
        $this->BasicFOP = $basicFOP;
        return $this;
    }
    /**
     * Get BSP_Ticketing value
     * @return \Sabre\EnhancedAirBook\Structs\BSP_Ticketing|null
     */
    public function getBSP_Ticketing()
    {
        return $this->BSP_Ticketing;
    }
    /**
     * Set BSP_Ticketing value
     * @param \Sabre\EnhancedAirBook\Structs\BSP_Ticketing $bSP_Ticketing
     * @return \Sabre\EnhancedAirBook\Structs\FOP_Qualifiers
     */
    public function setBSP_Ticketing(\Sabre\EnhancedAirBook\Structs\BSP_Ticketing $bSP_Ticketing = null)
    {
        $this->BSP_Ticketing = $bSP_Ticketing;
        return $this;
    }
    /**
     * Get MultipleCC_FOP value
     * @return \Sabre\EnhancedAirBook\Structs\MultipleCC_FOP|null
     */
    public function getMultipleCC_FOP()
    {
        return $this->MultipleCC_FOP;
    }
    /**
     * Set MultipleCC_FOP value
     * @param \Sabre\EnhancedAirBook\Structs\MultipleCC_FOP $multipleCC_FOP
     * @return \Sabre\EnhancedAirBook\Structs\FOP_Qualifiers
     */
    public function setMultipleCC_FOP(\Sabre\EnhancedAirBook\Structs\MultipleCC_FOP $multipleCC_FOP = null)
    {
        $this->MultipleCC_FOP = $multipleCC_FOP;
        return $this;
    }
    /**
     * Get SabreSonicTicketing value
     * @return \Sabre\EnhancedAirBook\Structs\SabreSonicTicketing|null
     */
    public function getSabreSonicTicketing()
    {
        return $this->SabreSonicTicketing;
    }
    /**
     * Set SabreSonicTicketing value
     * @param \Sabre\EnhancedAirBook\Structs\SabreSonicTicketing $sabreSonicTicketing
     * @return \Sabre\EnhancedAirBook\Structs\FOP_Qualifiers
     */
    public function setSabreSonicTicketing(\Sabre\EnhancedAirBook\Structs\SabreSonicTicketing $sabreSonicTicketing = null)
    {
        $this->SabreSonicTicketing = $sabreSonicTicketing;
        return $this;
    }
    /**
     * Get IgnoreStoredFOP value
     * @return bool|null
     */
    public function getIgnoreStoredFOP()
    {
        return $this->IgnoreStoredFOP;
    }
    /**
     * Set IgnoreStoredFOP value
     * @param bool $ignoreStoredFOP
     * @return \Sabre\EnhancedAirBook\Structs\FOP_Qualifiers
     */
    public function setIgnoreStoredFOP($ignoreStoredFOP = null)
    {
        $this->IgnoreStoredFOP = $ignoreStoredFOP;
        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\EnhancedAirBook\Structs\FOP_Qualifiers
     */
    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__;
    }
}
