<?php

namespace Sabre\OTAAirAvail\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for AdditionalAvailability Structs
 * @subpackage Structs
 */
class AdditionalAvailability extends AbstractStructBase
{
    /**
     * The AirExtras
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var string
     */
    public $AirExtras;
    /**
     * The DirectAccess
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var bool
     */
    public $DirectAccess;
    /**
     * The Ind
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var bool
     */
    public $Ind;
    /**
     * The MoveDown
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var bool
     */
    public $MoveDown;
    /**
     * Constructor method for AdditionalAvailability
     * @uses AdditionalAvailability::setAirExtras()
     * @uses AdditionalAvailability::setDirectAccess()
     * @uses AdditionalAvailability::setInd()
     * @uses AdditionalAvailability::setMoveDown()
     * @param string $airExtras
     * @param bool $directAccess
     * @param bool $ind
     * @param bool $moveDown
     */
    public function __construct($airExtras = null, $directAccess = null, $ind = null, $moveDown = null)
    {
        $this
            ->setAirExtras($airExtras)
            ->setDirectAccess($directAccess)
            ->setInd($ind)
            ->setMoveDown($moveDown);
    }
    /**
     * Get AirExtras value
     * @return string|null
     */
    public function getAirExtras()
    {
        return $this->AirExtras;
    }
    /**
     * Set AirExtras value
     * @param string $airExtras
     * @return \Sabre\OTAAirAvail\Structs\AdditionalAvailability
     */
    public function setAirExtras($airExtras = null)
    {
        $this->AirExtras = $airExtras;
        return $this;
    }
    /**
     * Get DirectAccess value
     * @return bool|null
     */
    public function getDirectAccess()
    {
        return $this->DirectAccess;
    }
    /**
     * Set DirectAccess value
     * @param bool $directAccess
     * @return \Sabre\OTAAirAvail\Structs\AdditionalAvailability
     */
    public function setDirectAccess($directAccess = null)
    {
        $this->DirectAccess = $directAccess;
        return $this;
    }
    /**
     * Get Ind value
     * @return bool|null
     */
    public function getInd()
    {
        return $this->Ind;
    }
    /**
     * Set Ind value
     * @param bool $ind
     * @return \Sabre\OTAAirAvail\Structs\AdditionalAvailability
     */
    public function setInd($ind = null)
    {
        $this->Ind = $ind;
        return $this;
    }
    /**
     * Get MoveDown value
     * @return bool|null
     */
    public function getMoveDown()
    {
        return $this->MoveDown;
    }
    /**
     * Set MoveDown value
     * @param bool $moveDown
     * @return \Sabre\OTAAirAvail\Structs\AdditionalAvailability
     */
    public function setMoveDown($moveDown = null)
    {
        $this->MoveDown = $moveDown;
        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\OTAAirAvail\Structs\AdditionalAvailability
     */
    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__;
    }
}
