<?php

namespace Sabre\EnhancedAirBook\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for SubCodeProperties Structs
 * @subpackage Structs
 */
class SubCodeProperties extends AbstractStructBase
{
    /**
     * The AncillaryFeeGroupCode
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $AncillaryFeeGroupCode;
    /**
     * The AncillaryService
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\EnhancedAirBook\Structs\AncillaryService
     */
    public $AncillaryService;
    /**
     * The BookingMethod
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $BookingMethod;
    /**
     * The CommercialNameofBaggageItemType
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $CommercialNameofBaggageItemType;
    /**
     * The DescriptionOne
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\EnhancedAirBook\Structs\DescriptionOne
     */
    public $DescriptionOne;
    /**
     * The DescriptionTwo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\EnhancedAirBook\Structs\DescriptionTwo
     */
    public $DescriptionTwo;
    /**
     * The EMD_Type
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $EMD_Type;
    /**
     * The ExtendedSubCodeKey
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ExtendedSubCodeKey;
    /**
     * The RFIC
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $RFIC;
    /**
     * The SizeWeightInfo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\EnhancedAirBook\Structs\SizeWeightInfo
     */
    public $SizeWeightInfo;
    /**
     * The SSR_Code
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $SSR_Code;
    /**
     * The SolutionSequenceNmbr
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var int
     */
    public $SolutionSequenceNmbr;
    /**
     * The RPH
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var int
     */
    public $RPH;
    /**
     * Constructor method for SubCodeProperties
     * @uses SubCodeProperties::setAncillaryFeeGroupCode()
     * @uses SubCodeProperties::setAncillaryService()
     * @uses SubCodeProperties::setBookingMethod()
     * @uses SubCodeProperties::setCommercialNameofBaggageItemType()
     * @uses SubCodeProperties::setDescriptionOne()
     * @uses SubCodeProperties::setDescriptionTwo()
     * @uses SubCodeProperties::setEMD_Type()
     * @uses SubCodeProperties::setExtendedSubCodeKey()
     * @uses SubCodeProperties::setRFIC()
     * @uses SubCodeProperties::setSizeWeightInfo()
     * @uses SubCodeProperties::setSSR_Code()
     * @uses SubCodeProperties::setSolutionSequenceNmbr()
     * @uses SubCodeProperties::setRPH()
     * @param string $ancillaryFeeGroupCode
     * @param \Sabre\EnhancedAirBook\Structs\AncillaryService $ancillaryService
     * @param string $bookingMethod
     * @param string $commercialNameofBaggageItemType
     * @param \Sabre\EnhancedAirBook\Structs\DescriptionOne $descriptionOne
     * @param \Sabre\EnhancedAirBook\Structs\DescriptionTwo $descriptionTwo
     * @param string $eMD_Type
     * @param string $extendedSubCodeKey
     * @param string $rFIC
     * @param \Sabre\EnhancedAirBook\Structs\SizeWeightInfo $sizeWeightInfo
     * @param string $sSR_Code
     * @param int $solutionSequenceNmbr
     * @param int $rPH
     */
    public function __construct($ancillaryFeeGroupCode = null, \Sabre\EnhancedAirBook\Structs\AncillaryService $ancillaryService = null, $bookingMethod = null, $commercialNameofBaggageItemType = null, \Sabre\EnhancedAirBook\Structs\DescriptionOne $descriptionOne = null, \Sabre\EnhancedAirBook\Structs\DescriptionTwo $descriptionTwo = null, $eMD_Type = null, $extendedSubCodeKey = null, $rFIC = null, \Sabre\EnhancedAirBook\Structs\SizeWeightInfo $sizeWeightInfo = null, $sSR_Code = null, $solutionSequenceNmbr = null, $rPH = null)
    {
        $this
            ->setAncillaryFeeGroupCode($ancillaryFeeGroupCode)
            ->setAncillaryService($ancillaryService)
            ->setBookingMethod($bookingMethod)
            ->setCommercialNameofBaggageItemType($commercialNameofBaggageItemType)
            ->setDescriptionOne($descriptionOne)
            ->setDescriptionTwo($descriptionTwo)
            ->setEMD_Type($eMD_Type)
            ->setExtendedSubCodeKey($extendedSubCodeKey)
            ->setRFIC($rFIC)
            ->setSizeWeightInfo($sizeWeightInfo)
            ->setSSR_Code($sSR_Code)
            ->setSolutionSequenceNmbr($solutionSequenceNmbr)
            ->setRPH($rPH);
    }
    /**
     * Get AncillaryFeeGroupCode value
     * @return string|null
     */
    public function getAncillaryFeeGroupCode()
    {
        return $this->AncillaryFeeGroupCode;
    }
    /**
     * Set AncillaryFeeGroupCode value
     * @param string $ancillaryFeeGroupCode
     * @return \Sabre\EnhancedAirBook\Structs\SubCodeProperties
     */
    public function setAncillaryFeeGroupCode($ancillaryFeeGroupCode = null)
    {
        $this->AncillaryFeeGroupCode = $ancillaryFeeGroupCode;
        return $this;
    }
    /**
     * Get AncillaryService value
     * @return \Sabre\EnhancedAirBook\Structs\AncillaryService|null
     */
    public function getAncillaryService()
    {
        return $this->AncillaryService;
    }
    /**
     * Set AncillaryService value
     * @param \Sabre\EnhancedAirBook\Structs\AncillaryService $ancillaryService
     * @return \Sabre\EnhancedAirBook\Structs\SubCodeProperties
     */
    public function setAncillaryService(\Sabre\EnhancedAirBook\Structs\AncillaryService $ancillaryService = null)
    {
        $this->AncillaryService = $ancillaryService;
        return $this;
    }
    /**
     * Get BookingMethod value
     * @return string|null
     */
    public function getBookingMethod()
    {
        return $this->BookingMethod;
    }
    /**
     * Set BookingMethod value
     * @param string $bookingMethod
     * @return \Sabre\EnhancedAirBook\Structs\SubCodeProperties
     */
    public function setBookingMethod($bookingMethod = null)
    {
        $this->BookingMethod = $bookingMethod;
        return $this;
    }
    /**
     * Get CommercialNameofBaggageItemType value
     * @return string|null
     */
    public function getCommercialNameofBaggageItemType()
    {
        return $this->CommercialNameofBaggageItemType;
    }
    /**
     * Set CommercialNameofBaggageItemType value
     * @param string $commercialNameofBaggageItemType
     * @return \Sabre\EnhancedAirBook\Structs\SubCodeProperties
     */
    public function setCommercialNameofBaggageItemType($commercialNameofBaggageItemType = null)
    {
        $this->CommercialNameofBaggageItemType = $commercialNameofBaggageItemType;
        return $this;
    }
    /**
     * Get DescriptionOne value
     * @return \Sabre\EnhancedAirBook\Structs\DescriptionOne|null
     */
    public function getDescriptionOne()
    {
        return $this->DescriptionOne;
    }
    /**
     * Set DescriptionOne value
     * @param \Sabre\EnhancedAirBook\Structs\DescriptionOne $descriptionOne
     * @return \Sabre\EnhancedAirBook\Structs\SubCodeProperties
     */
    public function setDescriptionOne(\Sabre\EnhancedAirBook\Structs\DescriptionOne $descriptionOne = null)
    {
        $this->DescriptionOne = $descriptionOne;
        return $this;
    }
    /**
     * Get DescriptionTwo value
     * @return \Sabre\EnhancedAirBook\Structs\DescriptionTwo|null
     */
    public function getDescriptionTwo()
    {
        return $this->DescriptionTwo;
    }
    /**
     * Set DescriptionTwo value
     * @param \Sabre\EnhancedAirBook\Structs\DescriptionTwo $descriptionTwo
     * @return \Sabre\EnhancedAirBook\Structs\SubCodeProperties
     */
    public function setDescriptionTwo(\Sabre\EnhancedAirBook\Structs\DescriptionTwo $descriptionTwo = null)
    {
        $this->DescriptionTwo = $descriptionTwo;
        return $this;
    }
    /**
     * Get EMD_Type value
     * @return string|null
     */
    public function getEMD_Type()
    {
        return $this->EMD_Type;
    }
    /**
     * Set EMD_Type value
     * @param string $eMD_Type
     * @return \Sabre\EnhancedAirBook\Structs\SubCodeProperties
     */
    public function setEMD_Type($eMD_Type = null)
    {
        $this->EMD_Type = $eMD_Type;
        return $this;
    }
    /**
     * Get ExtendedSubCodeKey value
     * @return string|null
     */
    public function getExtendedSubCodeKey()
    {
        return $this->ExtendedSubCodeKey;
    }
    /**
     * Set ExtendedSubCodeKey value
     * @param string $extendedSubCodeKey
     * @return \Sabre\EnhancedAirBook\Structs\SubCodeProperties
     */
    public function setExtendedSubCodeKey($extendedSubCodeKey = null)
    {
        $this->ExtendedSubCodeKey = $extendedSubCodeKey;
        return $this;
    }
    /**
     * Get RFIC value
     * @return string|null
     */
    public function getRFIC()
    {
        return $this->RFIC;
    }
    /**
     * Set RFIC value
     * @param string $rFIC
     * @return \Sabre\EnhancedAirBook\Structs\SubCodeProperties
     */
    public function setRFIC($rFIC = null)
    {
        $this->RFIC = $rFIC;
        return $this;
    }
    /**
     * Get SizeWeightInfo value
     * @return \Sabre\EnhancedAirBook\Structs\SizeWeightInfo|null
     */
    public function getSizeWeightInfo()
    {
        return $this->SizeWeightInfo;
    }
    /**
     * Set SizeWeightInfo value
     * @param \Sabre\EnhancedAirBook\Structs\SizeWeightInfo $sizeWeightInfo
     * @return \Sabre\EnhancedAirBook\Structs\SubCodeProperties
     */
    public function setSizeWeightInfo(\Sabre\EnhancedAirBook\Structs\SizeWeightInfo $sizeWeightInfo = null)
    {
        $this->SizeWeightInfo = $sizeWeightInfo;
        return $this;
    }
    /**
     * Get SSR_Code value
     * @return string|null
     */
    public function getSSR_Code()
    {
        return $this->SSR_Code;
    }
    /**
     * Set SSR_Code value
     * @param string $sSR_Code
     * @return \Sabre\EnhancedAirBook\Structs\SubCodeProperties
     */
    public function setSSR_Code($sSR_Code = null)
    {
        $this->SSR_Code = $sSR_Code;
        return $this;
    }
    /**
     * Get SolutionSequenceNmbr value
     * @return int|null
     */
    public function getSolutionSequenceNmbr()
    {
        return $this->SolutionSequenceNmbr;
    }
    /**
     * Set SolutionSequenceNmbr value
     * @param int $solutionSequenceNmbr
     * @return \Sabre\EnhancedAirBook\Structs\SubCodeProperties
     */
    public function setSolutionSequenceNmbr($solutionSequenceNmbr = null)
    {
        $this->SolutionSequenceNmbr = $solutionSequenceNmbr;
        return $this;
    }
    /**
     * Get RPH value
     * @return int|null
     */
    public function getRPH()
    {
        return $this->RPH;
    }
    /**
     * Set RPH value
     * @param int $rPH
     * @return \Sabre\EnhancedAirBook\Structs\SubCodeProperties
     */
    public function setRPH($rPH = null)
    {
        $this->RPH = $rPH;
        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\SubCodeProperties
     */
    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__;
    }
}
