<?php

namespace Sabre\CreatePassengerNameRecord\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for SabreSonicTicketing Structs
 * @subpackage Structs
 */
class SabreSonicTicketing extends AbstractStructBase
{
    /**
     * The BasicFOP
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\BasicFOP
     */
    public $BasicFOP;
    /**
     * The EnhancedMultipleFOP
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\EnhancedMultipleFOP
     */
    public $EnhancedMultipleFOP;
    /**
     * The MultipleFOP
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\MultipleFOP
     */
    public $MultipleFOP;
    /**
     * Constructor method for SabreSonicTicketing
     * @uses SabreSonicTicketing::setBasicFOP()
     * @uses SabreSonicTicketing::setEnhancedMultipleFOP()
     * @uses SabreSonicTicketing::setMultipleFOP()
     * @param \Sabre\CreatePassengerNameRecord\Structs\BasicFOP $basicFOP
     * @param \Sabre\CreatePassengerNameRecord\Structs\EnhancedMultipleFOP $enhancedMultipleFOP
     * @param \Sabre\CreatePassengerNameRecord\Structs\MultipleFOP $multipleFOP
     */
    public function __construct(\Sabre\CreatePassengerNameRecord\Structs\BasicFOP $basicFOP = null, \Sabre\CreatePassengerNameRecord\Structs\EnhancedMultipleFOP $enhancedMultipleFOP = null, \Sabre\CreatePassengerNameRecord\Structs\MultipleFOP $multipleFOP = null)
    {
        $this
            ->setBasicFOP($basicFOP)
            ->setEnhancedMultipleFOP($enhancedMultipleFOP)
            ->setMultipleFOP($multipleFOP);
    }
    /**
     * Get BasicFOP value
     * @return \Sabre\CreatePassengerNameRecord\Structs\BasicFOP|null
     */
    public function getBasicFOP()
    {
        return $this->BasicFOP;
    }
    /**
     * Set BasicFOP value
     * @param \Sabre\CreatePassengerNameRecord\Structs\BasicFOP $basicFOP
     * @return \Sabre\CreatePassengerNameRecord\Structs\SabreSonicTicketing
     */
    public function setBasicFOP(\Sabre\CreatePassengerNameRecord\Structs\BasicFOP $basicFOP = null)
    {
        $this->BasicFOP = $basicFOP;
        return $this;
    }
    /**
     * Get EnhancedMultipleFOP value
     * @return \Sabre\CreatePassengerNameRecord\Structs\EnhancedMultipleFOP|null
     */
    public function getEnhancedMultipleFOP()
    {
        return $this->EnhancedMultipleFOP;
    }
    /**
     * Set EnhancedMultipleFOP value
     * @param \Sabre\CreatePassengerNameRecord\Structs\EnhancedMultipleFOP $enhancedMultipleFOP
     * @return \Sabre\CreatePassengerNameRecord\Structs\SabreSonicTicketing
     */
    public function setEnhancedMultipleFOP(\Sabre\CreatePassengerNameRecord\Structs\EnhancedMultipleFOP $enhancedMultipleFOP = null)
    {
        $this->EnhancedMultipleFOP = $enhancedMultipleFOP;
        return $this;
    }
    /**
     * Get MultipleFOP value
     * @return \Sabre\CreatePassengerNameRecord\Structs\MultipleFOP|null
     */
    public function getMultipleFOP()
    {
        return $this->MultipleFOP;
    }
    /**
     * Set MultipleFOP value
     * @param \Sabre\CreatePassengerNameRecord\Structs\MultipleFOP $multipleFOP
     * @return \Sabre\CreatePassengerNameRecord\Structs\SabreSonicTicketing
     */
    public function setMultipleFOP(\Sabre\CreatePassengerNameRecord\Structs\MultipleFOP $multipleFOP = null)
    {
        $this->MultipleFOP = $multipleFOP;
        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\CreatePassengerNameRecord\Structs\SabreSonicTicketing
     */
    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__;
    }
}
