<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Ticketing.ExtendedTicketInfo StructType
 * @subpackage Structs
 */
class Ticketing_ExtendedTicketInfo extends AnyEntity
{
    /**
     * The DigitalBarcodeViewing
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $DigitalBarcodeViewing;
    /**
     * The PDFViewing
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $PDFViewing;
    /**
     * The Resale
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Resale;
    /**
     * The TicketViewing
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $TicketViewing;
    /**
     * The Transfer
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Transfer;
    /**
     * Constructor method for Ticketing.ExtendedTicketInfo
     * @uses Ticketing_ExtendedTicketInfo::setDigitalBarcodeViewing()
     * @uses Ticketing_ExtendedTicketInfo::setPDFViewing()
     * @uses Ticketing_ExtendedTicketInfo::setResale()
     * @uses Ticketing_ExtendedTicketInfo::setTicketViewing()
     * @uses Ticketing_ExtendedTicketInfo::setTransfer()
     * @param bool $digitalBarcodeViewing
     * @param bool $pDFViewing
     * @param bool $resale
     * @param bool $ticketViewing
     * @param bool $transfer
     */
    public function __construct($digitalBarcodeViewing = null, $pDFViewing = null, $resale = null, $ticketViewing = null, $transfer = null)
    {
        $this
            ->setDigitalBarcodeViewing($digitalBarcodeViewing)
            ->setPDFViewing($pDFViewing)
            ->setResale($resale)
            ->setTicketViewing($ticketViewing)
            ->setTransfer($transfer);
    }
    /**
     * Get DigitalBarcodeViewing value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getDigitalBarcodeViewing()
    {
        return isset($this->DigitalBarcodeViewing) ? $this->DigitalBarcodeViewing : null;
    }
    /**
     * Set DigitalBarcodeViewing value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $digitalBarcodeViewing
     * @return \patest\StructType\Ticketing_ExtendedTicketInfo
     */
    public function setDigitalBarcodeViewing($digitalBarcodeViewing = null)
    {
        // validation for constraint: boolean
        if (!is_null($digitalBarcodeViewing) && !is_bool($digitalBarcodeViewing)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($digitalBarcodeViewing, true), gettype($digitalBarcodeViewing)), __LINE__);
        }
        if (is_null($digitalBarcodeViewing) || (is_array($digitalBarcodeViewing) && empty($digitalBarcodeViewing))) {
            unset($this->DigitalBarcodeViewing);
        } else {
            $this->DigitalBarcodeViewing = $digitalBarcodeViewing;
        }
        return $this;
    }
    /**
     * Get PDFViewing value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getPDFViewing()
    {
        return isset($this->PDFViewing) ? $this->PDFViewing : null;
    }
    /**
     * Set PDFViewing value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $pDFViewing
     * @return \patest\StructType\Ticketing_ExtendedTicketInfo
     */
    public function setPDFViewing($pDFViewing = null)
    {
        // validation for constraint: boolean
        if (!is_null($pDFViewing) && !is_bool($pDFViewing)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($pDFViewing, true), gettype($pDFViewing)), __LINE__);
        }
        if (is_null($pDFViewing) || (is_array($pDFViewing) && empty($pDFViewing))) {
            unset($this->PDFViewing);
        } else {
            $this->PDFViewing = $pDFViewing;
        }
        return $this;
    }
    /**
     * Get Resale value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getResale()
    {
        return isset($this->Resale) ? $this->Resale : null;
    }
    /**
     * Set Resale value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $resale
     * @return \patest\StructType\Ticketing_ExtendedTicketInfo
     */
    public function setResale($resale = null)
    {
        // validation for constraint: boolean
        if (!is_null($resale) && !is_bool($resale)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($resale, true), gettype($resale)), __LINE__);
        }
        if (is_null($resale) || (is_array($resale) && empty($resale))) {
            unset($this->Resale);
        } else {
            $this->Resale = $resale;
        }
        return $this;
    }
    /**
     * Get TicketViewing value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getTicketViewing()
    {
        return isset($this->TicketViewing) ? $this->TicketViewing : null;
    }
    /**
     * Set TicketViewing value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $ticketViewing
     * @return \patest\StructType\Ticketing_ExtendedTicketInfo
     */
    public function setTicketViewing($ticketViewing = null)
    {
        // validation for constraint: boolean
        if (!is_null($ticketViewing) && !is_bool($ticketViewing)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($ticketViewing, true), gettype($ticketViewing)), __LINE__);
        }
        if (is_null($ticketViewing) || (is_array($ticketViewing) && empty($ticketViewing))) {
            unset($this->TicketViewing);
        } else {
            $this->TicketViewing = $ticketViewing;
        }
        return $this;
    }
    /**
     * Get Transfer value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getTransfer()
    {
        return isset($this->Transfer) ? $this->Transfer : null;
    }
    /**
     * Set Transfer value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $transfer
     * @return \patest\StructType\Ticketing_ExtendedTicketInfo
     */
    public function setTransfer($transfer = null)
    {
        // validation for constraint: boolean
        if (!is_null($transfer) && !is_bool($transfer)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($transfer, true), gettype($transfer)), __LINE__);
        }
        if (is_null($transfer) || (is_array($transfer) && empty($transfer))) {
            unset($this->Transfer);
        } else {
            $this->Transfer = $transfer;
        }
        return $this;
    }
}
