<?php

namespace Sabre\PassengerDetailsRQ\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for HotelPolicy Structs
 * @subpackage Structs
 */
class HotelPolicy extends AbstractStructBase
{
    /**
     * The DepositPolicy
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $DepositPolicy;
    /**
     * The GuaranteePolicy
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $GuaranteePolicy;
    /**
     * The LateArrivalPolicy
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $LateArrivalPolicy;
    /**
     * The CancellationPolicy
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $CancellationPolicy;
    /**
     * The AdditionalPolicy
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\PassengerDetailsRQ\Structs\MultilineTextType
     */
    public $AdditionalPolicy;
    /**
     * The CheckInCheckOutPolicy
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\PassengerDetailsRQ\Structs\CheckInCheckOutPolicy
     */
    public $CheckInCheckOutPolicy;
    /**
     * Constructor method for HotelPolicy
     * @uses HotelPolicy::setDepositPolicy()
     * @uses HotelPolicy::setGuaranteePolicy()
     * @uses HotelPolicy::setLateArrivalPolicy()
     * @uses HotelPolicy::setCancellationPolicy()
     * @uses HotelPolicy::setAdditionalPolicy()
     * @uses HotelPolicy::setCheckInCheckOutPolicy()
     * @param string $depositPolicy
     * @param string $guaranteePolicy
     * @param string $lateArrivalPolicy
     * @param string $cancellationPolicy
     * @param \Sabre\PassengerDetailsRQ\Structs\MultilineTextType $additionalPolicy
     * @param \Sabre\PassengerDetailsRQ\Structs\CheckInCheckOutPolicy $checkInCheckOutPolicy
     */
    public function __construct($depositPolicy = null, $guaranteePolicy = null, $lateArrivalPolicy = null, $cancellationPolicy = null, \Sabre\PassengerDetailsRQ\Structs\MultilineTextType $additionalPolicy = null, \Sabre\PassengerDetailsRQ\Structs\CheckInCheckOutPolicy $checkInCheckOutPolicy = null)
    {
        $this
            ->setDepositPolicy($depositPolicy)
            ->setGuaranteePolicy($guaranteePolicy)
            ->setLateArrivalPolicy($lateArrivalPolicy)
            ->setCancellationPolicy($cancellationPolicy)
            ->setAdditionalPolicy($additionalPolicy)
            ->setCheckInCheckOutPolicy($checkInCheckOutPolicy);
    }
    /**
     * Get DepositPolicy value
     * @return string|null
     */
    public function getDepositPolicy()
    {
        return $this->DepositPolicy;
    }
    /**
     * Set DepositPolicy value
     * @param string $depositPolicy
     * @return \Sabre\PassengerDetailsRQ\Structs\HotelPolicy
     */
    public function setDepositPolicy($depositPolicy = null)
    {
        $this->DepositPolicy = $depositPolicy;
        return $this;
    }
    /**
     * Get GuaranteePolicy value
     * @return string|null
     */
    public function getGuaranteePolicy()
    {
        return $this->GuaranteePolicy;
    }
    /**
     * Set GuaranteePolicy value
     * @param string $guaranteePolicy
     * @return \Sabre\PassengerDetailsRQ\Structs\HotelPolicy
     */
    public function setGuaranteePolicy($guaranteePolicy = null)
    {
        $this->GuaranteePolicy = $guaranteePolicy;
        return $this;
    }
    /**
     * Get LateArrivalPolicy value
     * @return string|null
     */
    public function getLateArrivalPolicy()
    {
        return $this->LateArrivalPolicy;
    }
    /**
     * Set LateArrivalPolicy value
     * @param string $lateArrivalPolicy
     * @return \Sabre\PassengerDetailsRQ\Structs\HotelPolicy
     */
    public function setLateArrivalPolicy($lateArrivalPolicy = null)
    {
        $this->LateArrivalPolicy = $lateArrivalPolicy;
        return $this;
    }
    /**
     * Get CancellationPolicy value
     * @return string|null
     */
    public function getCancellationPolicy()
    {
        return $this->CancellationPolicy;
    }
    /**
     * Set CancellationPolicy value
     * @param string $cancellationPolicy
     * @return \Sabre\PassengerDetailsRQ\Structs\HotelPolicy
     */
    public function setCancellationPolicy($cancellationPolicy = null)
    {
        $this->CancellationPolicy = $cancellationPolicy;
        return $this;
    }
    /**
     * Get AdditionalPolicy value
     * @return \Sabre\PassengerDetailsRQ\Structs\MultilineTextType|null
     */
    public function getAdditionalPolicy()
    {
        return $this->AdditionalPolicy;
    }
    /**
     * Set AdditionalPolicy value
     * @param \Sabre\PassengerDetailsRQ\Structs\MultilineTextType $additionalPolicy
     * @return \Sabre\PassengerDetailsRQ\Structs\HotelPolicy
     */
    public function setAdditionalPolicy(\Sabre\PassengerDetailsRQ\Structs\MultilineTextType $additionalPolicy = null)
    {
        $this->AdditionalPolicy = $additionalPolicy;
        return $this;
    }
    /**
     * Get CheckInCheckOutPolicy value
     * @return \Sabre\PassengerDetailsRQ\Structs\CheckInCheckOutPolicy|null
     */
    public function getCheckInCheckOutPolicy()
    {
        return $this->CheckInCheckOutPolicy;
    }
    /**
     * Set CheckInCheckOutPolicy value
     * @param \Sabre\PassengerDetailsRQ\Structs\CheckInCheckOutPolicy $checkInCheckOutPolicy
     * @return \Sabre\PassengerDetailsRQ\Structs\HotelPolicy
     */
    public function setCheckInCheckOutPolicy(\Sabre\PassengerDetailsRQ\Structs\CheckInCheckOutPolicy $checkInCheckOutPolicy = null)
    {
        $this->CheckInCheckOutPolicy = $checkInCheckOutPolicy;
        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\HotelPolicy
     */
    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__;
    }
}
