<?php

namespace Sabre\DesignatePrinter\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Printers Structs
 * @subpackage Structs
 */
class Printers extends AbstractStructBase
{
    /**
     * The BagTag
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\DesignatePrinter\Structs\BagTag
     */
    public $BagTag;
    /**
     * The BoardingPass
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\DesignatePrinter\Structs\BoardingPass
     */
    public $BoardingPass;
    /**
     * The Hardcopy
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\DesignatePrinter\Structs\Hardcopy
     */
    public $Hardcopy;
    /**
     * The InvoiceItinerary
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\DesignatePrinter\Structs\InvoiceItinerary
     */
    public $InvoiceItinerary;
    /**
     * The ListLabel
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\DesignatePrinter\Structs\ListLabel
     */
    public $ListLabel;
    /**
     * The MiniItinerary
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\DesignatePrinter\Structs\MiniItinerary
     */
    public $MiniItinerary;
    /**
     * The Report
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\DesignatePrinter\Structs\Report
     */
    public $Report;
    /**
     * The Ticket
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\DesignatePrinter\Structs\Ticket
     */
    public $Ticket;
    /**
     * Constructor method for Printers
     * @uses Printers::setBagTag()
     * @uses Printers::setBoardingPass()
     * @uses Printers::setHardcopy()
     * @uses Printers::setInvoiceItinerary()
     * @uses Printers::setListLabel()
     * @uses Printers::setMiniItinerary()
     * @uses Printers::setReport()
     * @uses Printers::setTicket()
     * @param \Sabre\DesignatePrinter\Structs\BagTag $bagTag
     * @param \Sabre\DesignatePrinter\Structs\BoardingPass $boardingPass
     * @param \Sabre\DesignatePrinter\Structs\Hardcopy $hardcopy
     * @param \Sabre\DesignatePrinter\Structs\InvoiceItinerary $invoiceItinerary
     * @param \Sabre\DesignatePrinter\Structs\ListLabel $listLabel
     * @param \Sabre\DesignatePrinter\Structs\MiniItinerary $miniItinerary
     * @param \Sabre\DesignatePrinter\Structs\Report $report
     * @param \Sabre\DesignatePrinter\Structs\Ticket $ticket
     */
    public function __construct(\Sabre\DesignatePrinter\Structs\BagTag $bagTag = null, \Sabre\DesignatePrinter\Structs\BoardingPass $boardingPass = null, \Sabre\DesignatePrinter\Structs\Hardcopy $hardcopy = null, \Sabre\DesignatePrinter\Structs\InvoiceItinerary $invoiceItinerary = null, \Sabre\DesignatePrinter\Structs\ListLabel $listLabel = null, \Sabre\DesignatePrinter\Structs\MiniItinerary $miniItinerary = null, \Sabre\DesignatePrinter\Structs\Report $report = null, \Sabre\DesignatePrinter\Structs\Ticket $ticket = null)
    {
        $this
            ->setBagTag($bagTag)
            ->setBoardingPass($boardingPass)
            ->setHardcopy($hardcopy)
            ->setInvoiceItinerary($invoiceItinerary)
            ->setListLabel($listLabel)
            ->setMiniItinerary($miniItinerary)
            ->setReport($report)
            ->setTicket($ticket);
    }
    /**
     * Get BagTag value
     * @return \Sabre\DesignatePrinter\Structs\BagTag|null
     */
    public function getBagTag()
    {
        return $this->BagTag;
    }
    /**
     * Set BagTag value
     * @param \Sabre\DesignatePrinter\Structs\BagTag $bagTag
     * @return \Sabre\DesignatePrinter\Structs\Printers
     */
    public function setBagTag(\Sabre\DesignatePrinter\Structs\BagTag $bagTag = null)
    {
        $this->BagTag = $bagTag;
        return $this;
    }
    /**
     * Get BoardingPass value
     * @return \Sabre\DesignatePrinter\Structs\BoardingPass|null
     */
    public function getBoardingPass()
    {
        return $this->BoardingPass;
    }
    /**
     * Set BoardingPass value
     * @param \Sabre\DesignatePrinter\Structs\BoardingPass $boardingPass
     * @return \Sabre\DesignatePrinter\Structs\Printers
     */
    public function setBoardingPass(\Sabre\DesignatePrinter\Structs\BoardingPass $boardingPass = null)
    {
        $this->BoardingPass = $boardingPass;
        return $this;
    }
    /**
     * Get Hardcopy value
     * @return \Sabre\DesignatePrinter\Structs\Hardcopy|null
     */
    public function getHardcopy()
    {
        return $this->Hardcopy;
    }
    /**
     * Set Hardcopy value
     * @param \Sabre\DesignatePrinter\Structs\Hardcopy $hardcopy
     * @return \Sabre\DesignatePrinter\Structs\Printers
     */
    public function setHardcopy(\Sabre\DesignatePrinter\Structs\Hardcopy $hardcopy = null)
    {
        $this->Hardcopy = $hardcopy;
        return $this;
    }
    /**
     * Get InvoiceItinerary value
     * @return \Sabre\DesignatePrinter\Structs\InvoiceItinerary|null
     */
    public function getInvoiceItinerary()
    {
        return $this->InvoiceItinerary;
    }
    /**
     * Set InvoiceItinerary value
     * @param \Sabre\DesignatePrinter\Structs\InvoiceItinerary $invoiceItinerary
     * @return \Sabre\DesignatePrinter\Structs\Printers
     */
    public function setInvoiceItinerary(\Sabre\DesignatePrinter\Structs\InvoiceItinerary $invoiceItinerary = null)
    {
        $this->InvoiceItinerary = $invoiceItinerary;
        return $this;
    }
    /**
     * Get ListLabel value
     * @return \Sabre\DesignatePrinter\Structs\ListLabel|null
     */
    public function getListLabel()
    {
        return $this->ListLabel;
    }
    /**
     * Set ListLabel value
     * @param \Sabre\DesignatePrinter\Structs\ListLabel $listLabel
     * @return \Sabre\DesignatePrinter\Structs\Printers
     */
    public function setListLabel(\Sabre\DesignatePrinter\Structs\ListLabel $listLabel = null)
    {
        $this->ListLabel = $listLabel;
        return $this;
    }
    /**
     * Get MiniItinerary value
     * @return \Sabre\DesignatePrinter\Structs\MiniItinerary|null
     */
    public function getMiniItinerary()
    {
        return $this->MiniItinerary;
    }
    /**
     * Set MiniItinerary value
     * @param \Sabre\DesignatePrinter\Structs\MiniItinerary $miniItinerary
     * @return \Sabre\DesignatePrinter\Structs\Printers
     */
    public function setMiniItinerary(\Sabre\DesignatePrinter\Structs\MiniItinerary $miniItinerary = null)
    {
        $this->MiniItinerary = $miniItinerary;
        return $this;
    }
    /**
     * Get Report value
     * @return \Sabre\DesignatePrinter\Structs\Report|null
     */
    public function getReport()
    {
        return $this->Report;
    }
    /**
     * Set Report value
     * @param \Sabre\DesignatePrinter\Structs\Report $report
     * @return \Sabre\DesignatePrinter\Structs\Printers
     */
    public function setReport(\Sabre\DesignatePrinter\Structs\Report $report = null)
    {
        $this->Report = $report;
        return $this;
    }
    /**
     * Get Ticket value
     * @return \Sabre\DesignatePrinter\Structs\Ticket|null
     */
    public function getTicket()
    {
        return $this->Ticket;
    }
    /**
     * Set Ticket value
     * @param \Sabre\DesignatePrinter\Structs\Ticket $ticket
     * @return \Sabre\DesignatePrinter\Structs\Printers
     */
    public function setTicket(\Sabre\DesignatePrinter\Structs\Ticket $ticket = null)
    {
        $this->Ticket = $ticket;
        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\DesignatePrinter\Structs\Printers
     */
    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__;
    }
}
