<?php

namespace Sabre\OTAAirPrice\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for MultipleCC_FOP Structs
 * @subpackage Structs
 */
class MultipleCC_FOP extends AbstractStructBase
{
    /**
     * The Fare
     * @var \Sabre\OTAAirPrice\Structs\Fare
     */
    public $Fare;
    /**
     * The CC_One
     * @var \Sabre\OTAAirPrice\Structs\CC_One
     */
    public $CC_One;
    /**
     * The CC_Two
     * @var \Sabre\OTAAirPrice\Structs\CC_Two
     */
    public $CC_Two;
    /**
     * Constructor method for MultipleCC_FOP
     * @uses MultipleCC_FOP::setFare()
     * @uses MultipleCC_FOP::setCC_One()
     * @uses MultipleCC_FOP::setCC_Two()
     * @param \Sabre\OTAAirPrice\Structs\Fare $fare
     * @param \Sabre\OTAAirPrice\Structs\CC_One $cC_One
     * @param \Sabre\OTAAirPrice\Structs\CC_Two $cC_Two
     */
    public function __construct(\Sabre\OTAAirPrice\Structs\Fare $fare = null, \Sabre\OTAAirPrice\Structs\CC_One $cC_One = null, \Sabre\OTAAirPrice\Structs\CC_Two $cC_Two = null)
    {
        $this
            ->setFare($fare)
            ->setCC_One($cC_One)
            ->setCC_Two($cC_Two);
    }
    /**
     * Get Fare value
     * @return \Sabre\OTAAirPrice\Structs\Fare|null
     */
    public function getFare()
    {
        return $this->Fare;
    }
    /**
     * Set Fare value
     * @param \Sabre\OTAAirPrice\Structs\Fare $fare
     * @return \Sabre\OTAAirPrice\Structs\MultipleCC_FOP
     */
    public function setFare(\Sabre\OTAAirPrice\Structs\Fare $fare = null)
    {
        $this->Fare = $fare;
        return $this;
    }
    /**
     * Get CC_One value
     * @return \Sabre\OTAAirPrice\Structs\CC_One|null
     */
    public function getCC_One()
    {
        return $this->CC_One;
    }
    /**
     * Set CC_One value
     * @param \Sabre\OTAAirPrice\Structs\CC_One $cC_One
     * @return \Sabre\OTAAirPrice\Structs\MultipleCC_FOP
     */
    public function setCC_One(\Sabre\OTAAirPrice\Structs\CC_One $cC_One = null)
    {
        $this->CC_One = $cC_One;
        return $this;
    }
    /**
     * Get CC_Two value
     * @return \Sabre\OTAAirPrice\Structs\CC_Two|null
     */
    public function getCC_Two()
    {
        return $this->CC_Two;
    }
    /**
     * Set CC_Two value
     * @param \Sabre\OTAAirPrice\Structs\CC_Two $cC_Two
     * @return \Sabre\OTAAirPrice\Structs\MultipleCC_FOP
     */
    public function setCC_Two(\Sabre\OTAAirPrice\Structs\CC_Two $cC_Two = null)
    {
        $this->CC_Two = $cC_Two;
        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\OTAAirPrice\Structs\MultipleCC_FOP
     */
    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__;
    }
}
