<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for SeatAttributesAndLabels StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:SeatAttributesAndLabels
 * @subpackage Structs
 */
class SeatAttributesAndLabels extends AbstractStructBase
{
    /**
     * The GateLabel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $GateLabel;
    /**
     * The HideGate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $HideGate;
    /**
     * The HideGateLabel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $HideGateLabel;
    /**
     * The HideLevel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $HideLevel;
    /**
     * The HideLevelLabel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $HideLevelLabel;
    /**
     * The HideRow
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $HideRow;
    /**
     * The HideRowLabel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $HideRowLabel;
    /**
     * The HideSeat
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $HideSeat;
    /**
     * The HideSeatLabel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $HideSeatLabel;
    /**
     * The HideSection
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $HideSection;
    /**
     * The HideSectionLabel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $HideSectionLabel;
    /**
     * The LevelLabel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $LevelLabel;
    /**
     * The ReplaceClubAccessWithPriceTypeNote
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $ReplaceClubAccessWithPriceTypeNote;
    /**
     * The ReplaceGateWithPriceTypeNote
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $ReplaceGateWithPriceTypeNote;
    /**
     * The ReplaceLevelWithPriceTypeNote
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $ReplaceLevelWithPriceTypeNote;
    /**
     * The ReplaceLevelWithStand
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $ReplaceLevelWithStand;
    /**
     * The ReplaceSecondaryClubAccessWithPriceTypeNote
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $ReplaceSecondaryClubAccessWithPriceTypeNote;
    /**
     * The RowLabel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $RowLabel;
    /**
     * The SeatLabel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SeatLabel;
    /**
     * The SectionLabel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SectionLabel;
    /**
     * The UseTicketNumberForSeat
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $UseTicketNumberForSeat;
    /**
     * Constructor method for SeatAttributesAndLabels
     * @uses SeatAttributesAndLabels::setGateLabel()
     * @uses SeatAttributesAndLabels::setHideGate()
     * @uses SeatAttributesAndLabels::setHideGateLabel()
     * @uses SeatAttributesAndLabels::setHideLevel()
     * @uses SeatAttributesAndLabels::setHideLevelLabel()
     * @uses SeatAttributesAndLabels::setHideRow()
     * @uses SeatAttributesAndLabels::setHideRowLabel()
     * @uses SeatAttributesAndLabels::setHideSeat()
     * @uses SeatAttributesAndLabels::setHideSeatLabel()
     * @uses SeatAttributesAndLabels::setHideSection()
     * @uses SeatAttributesAndLabels::setHideSectionLabel()
     * @uses SeatAttributesAndLabels::setLevelLabel()
     * @uses SeatAttributesAndLabels::setReplaceClubAccessWithPriceTypeNote()
     * @uses SeatAttributesAndLabels::setReplaceGateWithPriceTypeNote()
     * @uses SeatAttributesAndLabels::setReplaceLevelWithPriceTypeNote()
     * @uses SeatAttributesAndLabels::setReplaceLevelWithStand()
     * @uses SeatAttributesAndLabels::setReplaceSecondaryClubAccessWithPriceTypeNote()
     * @uses SeatAttributesAndLabels::setRowLabel()
     * @uses SeatAttributesAndLabels::setSeatLabel()
     * @uses SeatAttributesAndLabels::setSectionLabel()
     * @uses SeatAttributesAndLabels::setUseTicketNumberForSeat()
     * @param string $gateLabel
     * @param bool $hideGate
     * @param bool $hideGateLabel
     * @param bool $hideLevel
     * @param bool $hideLevelLabel
     * @param bool $hideRow
     * @param bool $hideRowLabel
     * @param bool $hideSeat
     * @param bool $hideSeatLabel
     * @param bool $hideSection
     * @param bool $hideSectionLabel
     * @param string $levelLabel
     * @param bool $replaceClubAccessWithPriceTypeNote
     * @param bool $replaceGateWithPriceTypeNote
     * @param bool $replaceLevelWithPriceTypeNote
     * @param bool $replaceLevelWithStand
     * @param bool $replaceSecondaryClubAccessWithPriceTypeNote
     * @param string $rowLabel
     * @param string $seatLabel
     * @param string $sectionLabel
     * @param bool $useTicketNumberForSeat
     */
    public function __construct($gateLabel = null, $hideGate = null, $hideGateLabel = null, $hideLevel = null, $hideLevelLabel = null, $hideRow = null, $hideRowLabel = null, $hideSeat = null, $hideSeatLabel = null, $hideSection = null, $hideSectionLabel = null, $levelLabel = null, $replaceClubAccessWithPriceTypeNote = null, $replaceGateWithPriceTypeNote = null, $replaceLevelWithPriceTypeNote = null, $replaceLevelWithStand = null, $replaceSecondaryClubAccessWithPriceTypeNote = null, $rowLabel = null, $seatLabel = null, $sectionLabel = null, $useTicketNumberForSeat = null)
    {
        $this
            ->setGateLabel($gateLabel)
            ->setHideGate($hideGate)
            ->setHideGateLabel($hideGateLabel)
            ->setHideLevel($hideLevel)
            ->setHideLevelLabel($hideLevelLabel)
            ->setHideRow($hideRow)
            ->setHideRowLabel($hideRowLabel)
            ->setHideSeat($hideSeat)
            ->setHideSeatLabel($hideSeatLabel)
            ->setHideSection($hideSection)
            ->setHideSectionLabel($hideSectionLabel)
            ->setLevelLabel($levelLabel)
            ->setReplaceClubAccessWithPriceTypeNote($replaceClubAccessWithPriceTypeNote)
            ->setReplaceGateWithPriceTypeNote($replaceGateWithPriceTypeNote)
            ->setReplaceLevelWithPriceTypeNote($replaceLevelWithPriceTypeNote)
            ->setReplaceLevelWithStand($replaceLevelWithStand)
            ->setReplaceSecondaryClubAccessWithPriceTypeNote($replaceSecondaryClubAccessWithPriceTypeNote)
            ->setRowLabel($rowLabel)
            ->setSeatLabel($seatLabel)
            ->setSectionLabel($sectionLabel)
            ->setUseTicketNumberForSeat($useTicketNumberForSeat);
    }
    /**
     * Get GateLabel 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 string|null
     */
    public function getGateLabel()
    {
        return isset($this->GateLabel) ? $this->GateLabel : null;
    }
    /**
     * Set GateLabel 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 string $gateLabel
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setGateLabel($gateLabel = null)
    {
        // validation for constraint: string
        if (!is_null($gateLabel) && !is_string($gateLabel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($gateLabel, true), gettype($gateLabel)), __LINE__);
        }
        if (is_null($gateLabel) || (is_array($gateLabel) && empty($gateLabel))) {
            unset($this->GateLabel);
        } else {
            $this->GateLabel = $gateLabel;
        }
        return $this;
    }
    /**
     * Get HideGate value
     * @return bool|null
     */
    public function getHideGate()
    {
        return $this->HideGate;
    }
    /**
     * Set HideGate value
     * @param bool $hideGate
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setHideGate($hideGate = null)
    {
        // validation for constraint: boolean
        if (!is_null($hideGate) && !is_bool($hideGate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($hideGate, true), gettype($hideGate)), __LINE__);
        }
        $this->HideGate = $hideGate;
        return $this;
    }
    /**
     * Get HideGateLabel value
     * @return bool|null
     */
    public function getHideGateLabel()
    {
        return $this->HideGateLabel;
    }
    /**
     * Set HideGateLabel value
     * @param bool $hideGateLabel
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setHideGateLabel($hideGateLabel = null)
    {
        // validation for constraint: boolean
        if (!is_null($hideGateLabel) && !is_bool($hideGateLabel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($hideGateLabel, true), gettype($hideGateLabel)), __LINE__);
        }
        $this->HideGateLabel = $hideGateLabel;
        return $this;
    }
    /**
     * Get HideLevel value
     * @return bool|null
     */
    public function getHideLevel()
    {
        return $this->HideLevel;
    }
    /**
     * Set HideLevel value
     * @param bool $hideLevel
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setHideLevel($hideLevel = null)
    {
        // validation for constraint: boolean
        if (!is_null($hideLevel) && !is_bool($hideLevel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($hideLevel, true), gettype($hideLevel)), __LINE__);
        }
        $this->HideLevel = $hideLevel;
        return $this;
    }
    /**
     * Get HideLevelLabel value
     * @return bool|null
     */
    public function getHideLevelLabel()
    {
        return $this->HideLevelLabel;
    }
    /**
     * Set HideLevelLabel value
     * @param bool $hideLevelLabel
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setHideLevelLabel($hideLevelLabel = null)
    {
        // validation for constraint: boolean
        if (!is_null($hideLevelLabel) && !is_bool($hideLevelLabel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($hideLevelLabel, true), gettype($hideLevelLabel)), __LINE__);
        }
        $this->HideLevelLabel = $hideLevelLabel;
        return $this;
    }
    /**
     * Get HideRow value
     * @return bool|null
     */
    public function getHideRow()
    {
        return $this->HideRow;
    }
    /**
     * Set HideRow value
     * @param bool $hideRow
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setHideRow($hideRow = null)
    {
        // validation for constraint: boolean
        if (!is_null($hideRow) && !is_bool($hideRow)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($hideRow, true), gettype($hideRow)), __LINE__);
        }
        $this->HideRow = $hideRow;
        return $this;
    }
    /**
     * Get HideRowLabel value
     * @return bool|null
     */
    public function getHideRowLabel()
    {
        return $this->HideRowLabel;
    }
    /**
     * Set HideRowLabel value
     * @param bool $hideRowLabel
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setHideRowLabel($hideRowLabel = null)
    {
        // validation for constraint: boolean
        if (!is_null($hideRowLabel) && !is_bool($hideRowLabel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($hideRowLabel, true), gettype($hideRowLabel)), __LINE__);
        }
        $this->HideRowLabel = $hideRowLabel;
        return $this;
    }
    /**
     * Get HideSeat value
     * @return bool|null
     */
    public function getHideSeat()
    {
        return $this->HideSeat;
    }
    /**
     * Set HideSeat value
     * @param bool $hideSeat
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setHideSeat($hideSeat = null)
    {
        // validation for constraint: boolean
        if (!is_null($hideSeat) && !is_bool($hideSeat)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($hideSeat, true), gettype($hideSeat)), __LINE__);
        }
        $this->HideSeat = $hideSeat;
        return $this;
    }
    /**
     * Get HideSeatLabel value
     * @return bool|null
     */
    public function getHideSeatLabel()
    {
        return $this->HideSeatLabel;
    }
    /**
     * Set HideSeatLabel value
     * @param bool $hideSeatLabel
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setHideSeatLabel($hideSeatLabel = null)
    {
        // validation for constraint: boolean
        if (!is_null($hideSeatLabel) && !is_bool($hideSeatLabel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($hideSeatLabel, true), gettype($hideSeatLabel)), __LINE__);
        }
        $this->HideSeatLabel = $hideSeatLabel;
        return $this;
    }
    /**
     * Get HideSection value
     * @return bool|null
     */
    public function getHideSection()
    {
        return $this->HideSection;
    }
    /**
     * Set HideSection value
     * @param bool $hideSection
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setHideSection($hideSection = null)
    {
        // validation for constraint: boolean
        if (!is_null($hideSection) && !is_bool($hideSection)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($hideSection, true), gettype($hideSection)), __LINE__);
        }
        $this->HideSection = $hideSection;
        return $this;
    }
    /**
     * Get HideSectionLabel value
     * @return bool|null
     */
    public function getHideSectionLabel()
    {
        return $this->HideSectionLabel;
    }
    /**
     * Set HideSectionLabel value
     * @param bool $hideSectionLabel
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setHideSectionLabel($hideSectionLabel = null)
    {
        // validation for constraint: boolean
        if (!is_null($hideSectionLabel) && !is_bool($hideSectionLabel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($hideSectionLabel, true), gettype($hideSectionLabel)), __LINE__);
        }
        $this->HideSectionLabel = $hideSectionLabel;
        return $this;
    }
    /**
     * Get LevelLabel 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 string|null
     */
    public function getLevelLabel()
    {
        return isset($this->LevelLabel) ? $this->LevelLabel : null;
    }
    /**
     * Set LevelLabel 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 string $levelLabel
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setLevelLabel($levelLabel = null)
    {
        // validation for constraint: string
        if (!is_null($levelLabel) && !is_string($levelLabel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($levelLabel, true), gettype($levelLabel)), __LINE__);
        }
        if (is_null($levelLabel) || (is_array($levelLabel) && empty($levelLabel))) {
            unset($this->LevelLabel);
        } else {
            $this->LevelLabel = $levelLabel;
        }
        return $this;
    }
    /**
     * Get ReplaceClubAccessWithPriceTypeNote value
     * @return bool|null
     */
    public function getReplaceClubAccessWithPriceTypeNote()
    {
        return $this->ReplaceClubAccessWithPriceTypeNote;
    }
    /**
     * Set ReplaceClubAccessWithPriceTypeNote value
     * @param bool $replaceClubAccessWithPriceTypeNote
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setReplaceClubAccessWithPriceTypeNote($replaceClubAccessWithPriceTypeNote = null)
    {
        // validation for constraint: boolean
        if (!is_null($replaceClubAccessWithPriceTypeNote) && !is_bool($replaceClubAccessWithPriceTypeNote)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($replaceClubAccessWithPriceTypeNote, true), gettype($replaceClubAccessWithPriceTypeNote)), __LINE__);
        }
        $this->ReplaceClubAccessWithPriceTypeNote = $replaceClubAccessWithPriceTypeNote;
        return $this;
    }
    /**
     * Get ReplaceGateWithPriceTypeNote value
     * @return bool|null
     */
    public function getReplaceGateWithPriceTypeNote()
    {
        return $this->ReplaceGateWithPriceTypeNote;
    }
    /**
     * Set ReplaceGateWithPriceTypeNote value
     * @param bool $replaceGateWithPriceTypeNote
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setReplaceGateWithPriceTypeNote($replaceGateWithPriceTypeNote = null)
    {
        // validation for constraint: boolean
        if (!is_null($replaceGateWithPriceTypeNote) && !is_bool($replaceGateWithPriceTypeNote)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($replaceGateWithPriceTypeNote, true), gettype($replaceGateWithPriceTypeNote)), __LINE__);
        }
        $this->ReplaceGateWithPriceTypeNote = $replaceGateWithPriceTypeNote;
        return $this;
    }
    /**
     * Get ReplaceLevelWithPriceTypeNote value
     * @return bool|null
     */
    public function getReplaceLevelWithPriceTypeNote()
    {
        return $this->ReplaceLevelWithPriceTypeNote;
    }
    /**
     * Set ReplaceLevelWithPriceTypeNote value
     * @param bool $replaceLevelWithPriceTypeNote
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setReplaceLevelWithPriceTypeNote($replaceLevelWithPriceTypeNote = null)
    {
        // validation for constraint: boolean
        if (!is_null($replaceLevelWithPriceTypeNote) && !is_bool($replaceLevelWithPriceTypeNote)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($replaceLevelWithPriceTypeNote, true), gettype($replaceLevelWithPriceTypeNote)), __LINE__);
        }
        $this->ReplaceLevelWithPriceTypeNote = $replaceLevelWithPriceTypeNote;
        return $this;
    }
    /**
     * Get ReplaceLevelWithStand value
     * @return bool|null
     */
    public function getReplaceLevelWithStand()
    {
        return $this->ReplaceLevelWithStand;
    }
    /**
     * Set ReplaceLevelWithStand value
     * @param bool $replaceLevelWithStand
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setReplaceLevelWithStand($replaceLevelWithStand = null)
    {
        // validation for constraint: boolean
        if (!is_null($replaceLevelWithStand) && !is_bool($replaceLevelWithStand)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($replaceLevelWithStand, true), gettype($replaceLevelWithStand)), __LINE__);
        }
        $this->ReplaceLevelWithStand = $replaceLevelWithStand;
        return $this;
    }
    /**
     * Get ReplaceSecondaryClubAccessWithPriceTypeNote value
     * @return bool|null
     */
    public function getReplaceSecondaryClubAccessWithPriceTypeNote()
    {
        return $this->ReplaceSecondaryClubAccessWithPriceTypeNote;
    }
    /**
     * Set ReplaceSecondaryClubAccessWithPriceTypeNote value
     * @param bool $replaceSecondaryClubAccessWithPriceTypeNote
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setReplaceSecondaryClubAccessWithPriceTypeNote($replaceSecondaryClubAccessWithPriceTypeNote = null)
    {
        // validation for constraint: boolean
        if (!is_null($replaceSecondaryClubAccessWithPriceTypeNote) && !is_bool($replaceSecondaryClubAccessWithPriceTypeNote)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($replaceSecondaryClubAccessWithPriceTypeNote, true), gettype($replaceSecondaryClubAccessWithPriceTypeNote)), __LINE__);
        }
        $this->ReplaceSecondaryClubAccessWithPriceTypeNote = $replaceSecondaryClubAccessWithPriceTypeNote;
        return $this;
    }
    /**
     * Get RowLabel 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 string|null
     */
    public function getRowLabel()
    {
        return isset($this->RowLabel) ? $this->RowLabel : null;
    }
    /**
     * Set RowLabel 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 string $rowLabel
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setRowLabel($rowLabel = null)
    {
        // validation for constraint: string
        if (!is_null($rowLabel) && !is_string($rowLabel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($rowLabel, true), gettype($rowLabel)), __LINE__);
        }
        if (is_null($rowLabel) || (is_array($rowLabel) && empty($rowLabel))) {
            unset($this->RowLabel);
        } else {
            $this->RowLabel = $rowLabel;
        }
        return $this;
    }
    /**
     * Get SeatLabel 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 string|null
     */
    public function getSeatLabel()
    {
        return isset($this->SeatLabel) ? $this->SeatLabel : null;
    }
    /**
     * Set SeatLabel 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 string $seatLabel
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setSeatLabel($seatLabel = null)
    {
        // validation for constraint: string
        if (!is_null($seatLabel) && !is_string($seatLabel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($seatLabel, true), gettype($seatLabel)), __LINE__);
        }
        if (is_null($seatLabel) || (is_array($seatLabel) && empty($seatLabel))) {
            unset($this->SeatLabel);
        } else {
            $this->SeatLabel = $seatLabel;
        }
        return $this;
    }
    /**
     * Get SectionLabel 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 string|null
     */
    public function getSectionLabel()
    {
        return isset($this->SectionLabel) ? $this->SectionLabel : null;
    }
    /**
     * Set SectionLabel 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 string $sectionLabel
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setSectionLabel($sectionLabel = null)
    {
        // validation for constraint: string
        if (!is_null($sectionLabel) && !is_string($sectionLabel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sectionLabel, true), gettype($sectionLabel)), __LINE__);
        }
        if (is_null($sectionLabel) || (is_array($sectionLabel) && empty($sectionLabel))) {
            unset($this->SectionLabel);
        } else {
            $this->SectionLabel = $sectionLabel;
        }
        return $this;
    }
    /**
     * Get UseTicketNumberForSeat value
     * @return bool|null
     */
    public function getUseTicketNumberForSeat()
    {
        return $this->UseTicketNumberForSeat;
    }
    /**
     * Set UseTicketNumberForSeat value
     * @param bool $useTicketNumberForSeat
     * @return \patest\StructType\SeatAttributesAndLabels
     */
    public function setUseTicketNumberForSeat($useTicketNumberForSeat = null)
    {
        // validation for constraint: boolean
        if (!is_null($useTicketNumberForSeat) && !is_bool($useTicketNumberForSeat)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($useTicketNumberForSeat, true), gettype($useTicketNumberForSeat)), __LINE__);
        }
        $this->UseTicketNumberForSeat = $useTicketNumberForSeat;
        return $this;
    }
}
