<?php

namespace Sabre\CreatePassengerNameRecord\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for UserInfo Structs
 * @subpackage Structs
 */
class UserInfo extends AbstractStructBase
{
    /**
     * The AAACity
     * @var \Sabre\CreatePassengerNameRecord\Structs\AAACity
     */
    public $AAACity;
    /**
     * The Action
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\Action
     */
    public $Action;
    /**
     * The AgentSine
     * @var \Sabre\CreatePassengerNameRecord\Structs\AgentSine
     */
    public $AgentSine;
    /**
     * The Branch
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\Branch
     */
    public $Branch;
    /**
     * The Partition
     * @var \Sabre\CreatePassengerNameRecord\Structs\Partition
     */
    public $Partition;
    /**
     * The Service
     * @var \Sabre\CreatePassengerNameRecord\Structs\Service
     */
    public $Service;
    /**
     * The SetAddress
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $SetAddress;
    /**
     * The Station
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\Station
     */
    public $Station;
    /**
     * The Transaction
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\Transaction
     */
    public $Transaction;
    /**
     * Constructor method for UserInfo
     * @uses UserInfo::setAAACity()
     * @uses UserInfo::setAction()
     * @uses UserInfo::setAgentSine()
     * @uses UserInfo::setBranch()
     * @uses UserInfo::setPartition()
     * @uses UserInfo::setService()
     * @uses UserInfo::setSetAddress()
     * @uses UserInfo::setStation()
     * @uses UserInfo::setTransaction()
     * @param \Sabre\CreatePassengerNameRecord\Structs\AAACity $aAACity
     * @param \Sabre\CreatePassengerNameRecord\Structs\Action $action
     * @param \Sabre\CreatePassengerNameRecord\Structs\AgentSine $agentSine
     * @param \Sabre\CreatePassengerNameRecord\Structs\Branch $branch
     * @param \Sabre\CreatePassengerNameRecord\Structs\Partition $partition
     * @param \Sabre\CreatePassengerNameRecord\Structs\Service $service
     * @param string $setAddress
     * @param \Sabre\CreatePassengerNameRecord\Structs\Station $station
     * @param \Sabre\CreatePassengerNameRecord\Structs\Transaction $transaction
     */
    public function __construct(\Sabre\CreatePassengerNameRecord\Structs\AAACity $aAACity = null, \Sabre\CreatePassengerNameRecord\Structs\Action $action = null, \Sabre\CreatePassengerNameRecord\Structs\AgentSine $agentSine = null, \Sabre\CreatePassengerNameRecord\Structs\Branch $branch = null, \Sabre\CreatePassengerNameRecord\Structs\Partition $partition = null, \Sabre\CreatePassengerNameRecord\Structs\Service $service = null, $setAddress = null, \Sabre\CreatePassengerNameRecord\Structs\Station $station = null, \Sabre\CreatePassengerNameRecord\Structs\Transaction $transaction = null)
    {
        $this
            ->setAAACity($aAACity)
            ->setAction($action)
            ->setAgentSine($agentSine)
            ->setBranch($branch)
            ->setPartition($partition)
            ->setService($service)
            ->setSetAddress($setAddress)
            ->setStation($station)
            ->setTransaction($transaction);
    }
    /**
     * Get AAACity value
     * @return \Sabre\CreatePassengerNameRecord\Structs\AAACity|null
     */
    public function getAAACity()
    {
        return $this->AAACity;
    }
    /**
     * Set AAACity value
     * @param \Sabre\CreatePassengerNameRecord\Structs\AAACity $aAACity
     * @return \Sabre\CreatePassengerNameRecord\Structs\UserInfo
     */
    public function setAAACity(\Sabre\CreatePassengerNameRecord\Structs\AAACity $aAACity = null)
    {
        $this->AAACity = $aAACity;
        return $this;
    }
    /**
     * Get Action value
     * @return \Sabre\CreatePassengerNameRecord\Structs\Action|null
     */
    public function getAction()
    {
        return $this->Action;
    }
    /**
     * Set Action value
     * @param \Sabre\CreatePassengerNameRecord\Structs\Action $action
     * @return \Sabre\CreatePassengerNameRecord\Structs\UserInfo
     */
    public function setAction(\Sabre\CreatePassengerNameRecord\Structs\Action $action = null)
    {
        $this->Action = $action;
        return $this;
    }
    /**
     * Get AgentSine value
     * @return \Sabre\CreatePassengerNameRecord\Structs\AgentSine|null
     */
    public function getAgentSine()
    {
        return $this->AgentSine;
    }
    /**
     * Set AgentSine value
     * @param \Sabre\CreatePassengerNameRecord\Structs\AgentSine $agentSine
     * @return \Sabre\CreatePassengerNameRecord\Structs\UserInfo
     */
    public function setAgentSine(\Sabre\CreatePassengerNameRecord\Structs\AgentSine $agentSine = null)
    {
        $this->AgentSine = $agentSine;
        return $this;
    }
    /**
     * Get Branch value
     * @return \Sabre\CreatePassengerNameRecord\Structs\Branch|null
     */
    public function getBranch()
    {
        return $this->Branch;
    }
    /**
     * Set Branch value
     * @param \Sabre\CreatePassengerNameRecord\Structs\Branch $branch
     * @return \Sabre\CreatePassengerNameRecord\Structs\UserInfo
     */
    public function setBranch(\Sabre\CreatePassengerNameRecord\Structs\Branch $branch = null)
    {
        $this->Branch = $branch;
        return $this;
    }
    /**
     * Get Partition value
     * @return \Sabre\CreatePassengerNameRecord\Structs\Partition|null
     */
    public function getPartition()
    {
        return $this->Partition;
    }
    /**
     * Set Partition value
     * @param \Sabre\CreatePassengerNameRecord\Structs\Partition $partition
     * @return \Sabre\CreatePassengerNameRecord\Structs\UserInfo
     */
    public function setPartition(\Sabre\CreatePassengerNameRecord\Structs\Partition $partition = null)
    {
        $this->Partition = $partition;
        return $this;
    }
    /**
     * Get Service value
     * @return \Sabre\CreatePassengerNameRecord\Structs\Service|null
     */
    public function getService()
    {
        return $this->Service;
    }
    /**
     * Set Service value
     * @param \Sabre\CreatePassengerNameRecord\Structs\Service $service
     * @return \Sabre\CreatePassengerNameRecord\Structs\UserInfo
     */
    public function setService(\Sabre\CreatePassengerNameRecord\Structs\Service $service = null)
    {
        $this->Service = $service;
        return $this;
    }
    /**
     * Get SetAddress value
     * @return string|null
     */
    public function getSetAddress()
    {
        return $this->SetAddress;
    }
    /**
     * Set SetAddress value
     * @param string $setAddress
     * @return \Sabre\CreatePassengerNameRecord\Structs\UserInfo
     */
    public function setSetAddress($setAddress = null)
    {
        $this->SetAddress = $setAddress;
        return $this;
    }
    /**
     * Get Station value
     * @return \Sabre\CreatePassengerNameRecord\Structs\Station|null
     */
    public function getStation()
    {
        return $this->Station;
    }
    /**
     * Set Station value
     * @param \Sabre\CreatePassengerNameRecord\Structs\Station $station
     * @return \Sabre\CreatePassengerNameRecord\Structs\UserInfo
     */
    public function setStation(\Sabre\CreatePassengerNameRecord\Structs\Station $station = null)
    {
        $this->Station = $station;
        return $this;
    }
    /**
     * Get Transaction value
     * @return \Sabre\CreatePassengerNameRecord\Structs\Transaction|null
     */
    public function getTransaction()
    {
        return $this->Transaction;
    }
    /**
     * Set Transaction value
     * @param \Sabre\CreatePassengerNameRecord\Structs\Transaction $transaction
     * @return \Sabre\CreatePassengerNameRecord\Structs\UserInfo
     */
    public function setTransaction(\Sabre\CreatePassengerNameRecord\Structs\Transaction $transaction = null)
    {
        $this->Transaction = $transaction;
        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\UserInfo
     */
    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__;
    }
}
