<?php

namespace Sabre\QueueAccess\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Direction Structs
 * @subpackage Structs
 */
class Direction extends AbstractStructBase
{
    /**
     * The Action
     * Meta informations extracted from the WSDL
     * - use: required
     * @var string
     */
    public $Action;
    /**
     * The Minus
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var string
     */
    public $Minus;
    /**
     * The Plus
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var string
     */
    public $Plus;
    /**
     * Constructor method for Direction
     * @uses Direction::setAction()
     * @uses Direction::setMinus()
     * @uses Direction::setPlus()
     * @param string $action
     * @param string $minus
     * @param string $plus
     */
    public function __construct($action = null, $minus = null, $plus = null)
    {
        $this
            ->setAction($action)
            ->setMinus($minus)
            ->setPlus($plus);
    }
    /**
     * Get Action value
     * @return string
     */
    public function getAction()
    {
        return $this->Action;
    }
    /**
     * Set Action value
     * @param string $action
     * @return \Sabre\QueueAccess\Structs\Direction
     */
    public function setAction($action = null)
    {
        $this->Action = $action;
        return $this;
    }
    /**
     * Get Minus value
     * @return string|null
     */
    public function getMinus()
    {
        return $this->Minus;
    }
    /**
     * Set Minus value
     * @param string $minus
     * @return \Sabre\QueueAccess\Structs\Direction
     */
    public function setMinus($minus = null)
    {
        $this->Minus = $minus;
        return $this;
    }
    /**
     * Get Plus value
     * @return string|null
     */
    public function getPlus()
    {
        return $this->Plus;
    }
    /**
     * Set Plus value
     * @param string $plus
     * @return \Sabre\QueueAccess\Structs\Direction
     */
    public function setPlus($plus = null)
    {
        $this->Plus = $plus;
        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\QueueAccess\Structs\Direction
     */
    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__;
    }
}
