<?php

namespace Sabre\CreatePassengerNameRecord\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for PriceRequestInformation Structs
 * @subpackage Structs
 */
class PriceRequestInformation extends AbstractStructBase
{
    /**
     * The OptionalQualifiers
     * @var \Sabre\CreatePassengerNameRecord\Structs\OptionalQualifiers
     */
    public $OptionalQualifiers;
    /**
     * The AlternativePricing
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var bool
     */
    public $AlternativePricing;
    /**
     * The FutureTicket
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var bool
     */
    public $FutureTicket;
    /**
     * The Manual
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var bool
     */
    public $Manual;
    /**
     * The Retain
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var bool
     */
    public $Retain;
    /**
     * Constructor method for PriceRequestInformation
     * @uses PriceRequestInformation::setOptionalQualifiers()
     * @uses PriceRequestInformation::setAlternativePricing()
     * @uses PriceRequestInformation::setFutureTicket()
     * @uses PriceRequestInformation::setManual()
     * @uses PriceRequestInformation::setRetain()
     * @param \Sabre\CreatePassengerNameRecord\Structs\OptionalQualifiers $optionalQualifiers
     * @param bool $alternativePricing
     * @param bool $futureTicket
     * @param bool $manual
     * @param bool $retain
     */
    public function __construct(\Sabre\CreatePassengerNameRecord\Structs\OptionalQualifiers $optionalQualifiers = null, $alternativePricing = null, $futureTicket = null, $manual = null, $retain = null)
    {
        $this
            ->setOptionalQualifiers($optionalQualifiers)
            ->setAlternativePricing($alternativePricing)
            ->setFutureTicket($futureTicket)
            ->setManual($manual)
            ->setRetain($retain);
    }
    /**
     * Get OptionalQualifiers value
     * @return \Sabre\CreatePassengerNameRecord\Structs\OptionalQualifiers|null
     */
    public function getOptionalQualifiers()
    {
        return $this->OptionalQualifiers;
    }
    /**
     * Set OptionalQualifiers value
     * @param \Sabre\CreatePassengerNameRecord\Structs\OptionalQualifiers $optionalQualifiers
     * @return \Sabre\CreatePassengerNameRecord\Structs\PriceRequestInformation
     */
    public function setOptionalQualifiers(\Sabre\CreatePassengerNameRecord\Structs\OptionalQualifiers $optionalQualifiers = null)
    {
        $this->OptionalQualifiers = $optionalQualifiers;
        return $this;
    }
    /**
     * Get AlternativePricing value
     * @return bool|null
     */
    public function getAlternativePricing()
    {
        return $this->AlternativePricing;
    }
    /**
     * Set AlternativePricing value
     * @param bool $alternativePricing
     * @return \Sabre\CreatePassengerNameRecord\Structs\PriceRequestInformation
     */
    public function setAlternativePricing($alternativePricing = null)
    {
        $this->AlternativePricing = $alternativePricing;
        return $this;
    }
    /**
     * Get FutureTicket value
     * @return bool|null
     */
    public function getFutureTicket()
    {
        return $this->FutureTicket;
    }
    /**
     * Set FutureTicket value
     * @param bool $futureTicket
     * @return \Sabre\CreatePassengerNameRecord\Structs\PriceRequestInformation
     */
    public function setFutureTicket($futureTicket = null)
    {
        $this->FutureTicket = $futureTicket;
        return $this;
    }
    /**
     * Get Manual value
     * @return bool|null
     */
    public function getManual()
    {
        return $this->Manual;
    }
    /**
     * Set Manual value
     * @param bool $manual
     * @return \Sabre\CreatePassengerNameRecord\Structs\PriceRequestInformation
     */
    public function setManual($manual = null)
    {
        $this->Manual = $manual;
        return $this;
    }
    /**
     * Get Retain value
     * @return bool|null
     */
    public function getRetain()
    {
        return $this->Retain;
    }
    /**
     * Set Retain value
     * @param bool $retain
     * @return \Sabre\CreatePassengerNameRecord\Structs\PriceRequestInformation
     */
    public function setRetain($retain = null)
    {
        $this->Retain = $retain;
        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\PriceRequestInformation
     */
    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__;
    }
}
