<?php

namespace Sabre\AirTicket\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for DesignatePrinter Structs
 * @subpackage Structs
 */
class DesignatePrinter extends AbstractStructBase
{
    /**
     * The Printers
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\AirTicket\Structs\Printers
     */
    public $Printers;
    /**
     * The Profile
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\AirTicket\Structs\Profile
     */
    public $Profile;
    /**
     * Constructor method for DesignatePrinter
     * @uses DesignatePrinter::setPrinters()
     * @uses DesignatePrinter::setProfile()
     * @param \Sabre\AirTicket\Structs\Printers $printers
     * @param \Sabre\AirTicket\Structs\Profile $profile
     */
    public function __construct(\Sabre\AirTicket\Structs\Printers $printers = null, \Sabre\AirTicket\Structs\Profile $profile = null)
    {
        $this
            ->setPrinters($printers)
            ->setProfile($profile);
    }
    /**
     * Get Printers value
     * @return \Sabre\AirTicket\Structs\Printers|null
     */
    public function getPrinters()
    {
        return $this->Printers;
    }
    /**
     * Set Printers value
     * @param \Sabre\AirTicket\Structs\Printers $printers
     * @return \Sabre\AirTicket\Structs\DesignatePrinter
     */
    public function setPrinters(\Sabre\AirTicket\Structs\Printers $printers = null)
    {
        $this->Printers = $printers;
        return $this;
    }
    /**
     * Get Profile value
     * @return \Sabre\AirTicket\Structs\Profile|null
     */
    public function getProfile()
    {
        return $this->Profile;
    }
    /**
     * Set Profile value
     * @param \Sabre\AirTicket\Structs\Profile $profile
     * @return \Sabre\AirTicket\Structs\DesignatePrinter
     */
    public function setProfile(\Sabre\AirTicket\Structs\Profile $profile = null)
    {
        $this->Profile = $profile;
        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\AirTicket\Structs\DesignatePrinter
     */
    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__;
    }
}
