<?php

namespace Sabre\PassengerDetailsRQ\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for PassengerDetailsRQ Structs
 * @subpackage Structs
 */
class PassengerDetailsRQ extends STL_Request_Payload
{
    /**
     * The MiscSegmentSellRQ
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\PassengerDetailsRQ\Structs\MiscSegmentSellRQ
     */
    public $MiscSegmentSellRQ;
    /**
     * The PostProcessing
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\PassengerDetailsRQ\Structs\PostProcessing
     */
    public $PostProcessing;
    /**
     * The PreProcessing
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\PassengerDetailsRQ\Structs\PreProcessing
     */
    public $PreProcessing;
    /**
     * The PriceQuoteInfo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\PassengerDetailsRQ\Structs\PriceQuoteInfo
     */
    public $PriceQuoteInfo;
    /**
     * The ProfileRQ
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\PassengerDetailsRQ\Structs\ProfileRQ
     */
    public $ProfileRQ;
    /**
     * The SpecialReqDetails
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\PassengerDetailsRQ\Structs\SpecialReqDetails
     */
    public $SpecialReqDetails;
    /**
     * The TravelItineraryAddInfoRQ
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\PassengerDetailsRQ\Structs\TravelItineraryAddInfoRQ
     */
    public $TravelItineraryAddInfoRQ;
    /**
     * The HaltOnError
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var bool
     */
    public $HaltOnError;
    /**
     * The IgnoreOnError
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var bool
     */
    public $IgnoreOnError;
    /**
     * Constructor method for PassengerDetailsRQ
     * @uses PassengerDetailsRQ::setMiscSegmentSellRQ()
     * @uses PassengerDetailsRQ::setPostProcessing()
     * @uses PassengerDetailsRQ::setPreProcessing()
     * @uses PassengerDetailsRQ::setPriceQuoteInfo()
     * @uses PassengerDetailsRQ::setProfileRQ()
     * @uses PassengerDetailsRQ::setSpecialReqDetails()
     * @uses PassengerDetailsRQ::setTravelItineraryAddInfoRQ()
     * @uses PassengerDetailsRQ::setHaltOnError()
     * @uses PassengerDetailsRQ::setIgnoreOnError()
     * @param \Sabre\PassengerDetailsRQ\Structs\MiscSegmentSellRQ $miscSegmentSellRQ
     * @param \Sabre\PassengerDetailsRQ\Structs\PostProcessing $postProcessing
     * @param \Sabre\PassengerDetailsRQ\Structs\PreProcessing $preProcessing
     * @param \Sabre\PassengerDetailsRQ\Structs\PriceQuoteInfo $priceQuoteInfo
     * @param \Sabre\PassengerDetailsRQ\Structs\ProfileRQ $profileRQ
     * @param \Sabre\PassengerDetailsRQ\Structs\SpecialReqDetails $specialReqDetails
     * @param \Sabre\PassengerDetailsRQ\Structs\TravelItineraryAddInfoRQ $travelItineraryAddInfoRQ
     * @param bool $haltOnError
     * @param bool $ignoreOnError
     */
    public function __construct(\Sabre\PassengerDetailsRQ\Structs\MiscSegmentSellRQ $miscSegmentSellRQ = null, \Sabre\PassengerDetailsRQ\Structs\PostProcessing $postProcessing = null, \Sabre\PassengerDetailsRQ\Structs\PreProcessing $preProcessing = null, \Sabre\PassengerDetailsRQ\Structs\PriceQuoteInfo $priceQuoteInfo = null, \Sabre\PassengerDetailsRQ\Structs\ProfileRQ $profileRQ = null, \Sabre\PassengerDetailsRQ\Structs\SpecialReqDetails $specialReqDetails = null, \Sabre\PassengerDetailsRQ\Structs\TravelItineraryAddInfoRQ $travelItineraryAddInfoRQ = null, $haltOnError = null, $ignoreOnError = null)
    {
        $this
            ->setMiscSegmentSellRQ($miscSegmentSellRQ)
            ->setPostProcessing($postProcessing)
            ->setPreProcessing($preProcessing)
            ->setPriceQuoteInfo($priceQuoteInfo)
            ->setProfileRQ($profileRQ)
            ->setSpecialReqDetails($specialReqDetails)
            ->setTravelItineraryAddInfoRQ($travelItineraryAddInfoRQ)
            ->setHaltOnError($haltOnError)
            ->setIgnoreOnError($ignoreOnError);
    }
    /**
     * Get MiscSegmentSellRQ value
     * @return \Sabre\PassengerDetailsRQ\Structs\MiscSegmentSellRQ|null
     */
    public function getMiscSegmentSellRQ()
    {
        return $this->MiscSegmentSellRQ;
    }
    /**
     * Set MiscSegmentSellRQ value
     * @param \Sabre\PassengerDetailsRQ\Structs\MiscSegmentSellRQ $miscSegmentSellRQ
     * @return \Sabre\PassengerDetailsRQ\Structs\PassengerDetailsRQ
     */
    public function setMiscSegmentSellRQ(\Sabre\PassengerDetailsRQ\Structs\MiscSegmentSellRQ $miscSegmentSellRQ = null)
    {
        $this->MiscSegmentSellRQ = $miscSegmentSellRQ;
        return $this;
    }
    /**
     * Get PostProcessing value
     * @return \Sabre\PassengerDetailsRQ\Structs\PostProcessing|null
     */
    public function getPostProcessing()
    {
        return $this->PostProcessing;
    }
    /**
     * Set PostProcessing value
     * @param \Sabre\PassengerDetailsRQ\Structs\PostProcessing $postProcessing
     * @return \Sabre\PassengerDetailsRQ\Structs\PassengerDetailsRQ
     */
    public function setPostProcessing(\Sabre\PassengerDetailsRQ\Structs\PostProcessing $postProcessing = null)
    {
        $this->PostProcessing = $postProcessing;
        return $this;
    }
    /**
     * Get PreProcessing value
     * @return \Sabre\PassengerDetailsRQ\Structs\PreProcessing|null
     */
    public function getPreProcessing()
    {
        return $this->PreProcessing;
    }
    /**
     * Set PreProcessing value
     * @param \Sabre\PassengerDetailsRQ\Structs\PreProcessing $preProcessing
     * @return \Sabre\PassengerDetailsRQ\Structs\PassengerDetailsRQ
     */
    public function setPreProcessing(\Sabre\PassengerDetailsRQ\Structs\PreProcessing $preProcessing = null)
    {
        $this->PreProcessing = $preProcessing;
        return $this;
    }
    /**
     * Get PriceQuoteInfo value
     * @return \Sabre\PassengerDetailsRQ\Structs\PriceQuoteInfo|null
     */
    public function getPriceQuoteInfo()
    {
        return $this->PriceQuoteInfo;
    }
    /**
     * Set PriceQuoteInfo value
     * @param \Sabre\PassengerDetailsRQ\Structs\PriceQuoteInfo $priceQuoteInfo
     * @return \Sabre\PassengerDetailsRQ\Structs\PassengerDetailsRQ
     */
    public function setPriceQuoteInfo(\Sabre\PassengerDetailsRQ\Structs\PriceQuoteInfo $priceQuoteInfo = null)
    {
        $this->PriceQuoteInfo = $priceQuoteInfo;
        return $this;
    }
    /**
     * Get ProfileRQ value
     * @return \Sabre\PassengerDetailsRQ\Structs\ProfileRQ|null
     */
    public function getProfileRQ()
    {
        return $this->ProfileRQ;
    }
    /**
     * Set ProfileRQ value
     * @param \Sabre\PassengerDetailsRQ\Structs\ProfileRQ $profileRQ
     * @return \Sabre\PassengerDetailsRQ\Structs\PassengerDetailsRQ
     */
    public function setProfileRQ(\Sabre\PassengerDetailsRQ\Structs\ProfileRQ $profileRQ = null)
    {
        $this->ProfileRQ = $profileRQ;
        return $this;
    }
    /**
     * Get SpecialReqDetails value
     * @return \Sabre\PassengerDetailsRQ\Structs\SpecialReqDetails|null
     */
    public function getSpecialReqDetails()
    {
        return $this->SpecialReqDetails;
    }
    /**
     * Set SpecialReqDetails value
     * @param \Sabre\PassengerDetailsRQ\Structs\SpecialReqDetails $specialReqDetails
     * @return \Sabre\PassengerDetailsRQ\Structs\PassengerDetailsRQ
     */
    public function setSpecialReqDetails(\Sabre\PassengerDetailsRQ\Structs\SpecialReqDetails $specialReqDetails = null)
    {
        $this->SpecialReqDetails = $specialReqDetails;
        return $this;
    }
    /**
     * Get TravelItineraryAddInfoRQ value
     * @return \Sabre\PassengerDetailsRQ\Structs\TravelItineraryAddInfoRQ|null
     */
    public function getTravelItineraryAddInfoRQ()
    {
        return $this->TravelItineraryAddInfoRQ;
    }
    /**
     * Set TravelItineraryAddInfoRQ value
     * @param \Sabre\PassengerDetailsRQ\Structs\TravelItineraryAddInfoRQ $travelItineraryAddInfoRQ
     * @return \Sabre\PassengerDetailsRQ\Structs\PassengerDetailsRQ
     */
    public function setTravelItineraryAddInfoRQ(\Sabre\PassengerDetailsRQ\Structs\TravelItineraryAddInfoRQ $travelItineraryAddInfoRQ = null)
    {
        $this->TravelItineraryAddInfoRQ = $travelItineraryAddInfoRQ;
        return $this;
    }
    /**
     * Get HaltOnError value
     * @return bool|null
     */
    public function getHaltOnError()
    {
        return $this->HaltOnError;
    }
    /**
     * Set HaltOnError value
     * @param bool $haltOnError
     * @return \Sabre\PassengerDetailsRQ\Structs\PassengerDetailsRQ
     */
    public function setHaltOnError($haltOnError = null)
    {
        $this->HaltOnError = $haltOnError;
        return $this;
    }
    /**
     * Get IgnoreOnError value
     * @return bool|null
     */
    public function getIgnoreOnError()
    {
        return $this->IgnoreOnError;
    }
    /**
     * Set IgnoreOnError value
     * @param bool $ignoreOnError
     * @return \Sabre\PassengerDetailsRQ\Structs\PassengerDetailsRQ
     */
    public function setIgnoreOnError($ignoreOnError = null)
    {
        $this->IgnoreOnError = $ignoreOnError;
        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\PassengerDetailsRQ\Structs\PassengerDetailsRQ
     */
    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__;
    }
}
