<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for bSRO.Sales.SelectRange StructType
 * @subpackage Structs
 */
class BSRO_Sales_SelectRange extends AnyEntity
{
    /**
     * The AreasFrom
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $AreasFrom;
    /**
     * The AreasTo
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $AreasTo;
    /**
     * The ClearAllOtherSelections
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $ClearAllOtherSelections;
    /**
     * The EventDateFrom
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $EventDateFrom;
    /**
     * The EventDateTo
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $EventDateTo;
    /**
     * The RowsFrom
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $RowsFrom;
    /**
     * The RowsTo
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $RowsTo;
    /**
     * The SeatsFrom
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SeatsFrom;
    /**
     * The SeatsTo
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SeatsTo;
    /**
     * The SectorsFrom
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SectorsFrom;
    /**
     * The SectorsTo
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SectorsTo;
    /**
     * Constructor method for bSRO.Sales.SelectRange
     * @uses BSRO_Sales_SelectRange::setAreasFrom()
     * @uses BSRO_Sales_SelectRange::setAreasTo()
     * @uses BSRO_Sales_SelectRange::setClearAllOtherSelections()
     * @uses BSRO_Sales_SelectRange::setEventDateFrom()
     * @uses BSRO_Sales_SelectRange::setEventDateTo()
     * @uses BSRO_Sales_SelectRange::setRowsFrom()
     * @uses BSRO_Sales_SelectRange::setRowsTo()
     * @uses BSRO_Sales_SelectRange::setSeatsFrom()
     * @uses BSRO_Sales_SelectRange::setSeatsTo()
     * @uses BSRO_Sales_SelectRange::setSectorsFrom()
     * @uses BSRO_Sales_SelectRange::setSectorsTo()
     * @param string $areasFrom
     * @param string $areasTo
     * @param bool $clearAllOtherSelections
     * @param string $eventDateFrom
     * @param string $eventDateTo
     * @param string $rowsFrom
     * @param string $rowsTo
     * @param string $seatsFrom
     * @param string $seatsTo
     * @param string $sectorsFrom
     * @param string $sectorsTo
     */
    public function __construct($areasFrom = null, $areasTo = null, $clearAllOtherSelections = null, $eventDateFrom = null, $eventDateTo = null, $rowsFrom = null, $rowsTo = null, $seatsFrom = null, $seatsTo = null, $sectorsFrom = null, $sectorsTo = null)
    {
        $this
            ->setAreasFrom($areasFrom)
            ->setAreasTo($areasTo)
            ->setClearAllOtherSelections($clearAllOtherSelections)
            ->setEventDateFrom($eventDateFrom)
            ->setEventDateTo($eventDateTo)
            ->setRowsFrom($rowsFrom)
            ->setRowsTo($rowsTo)
            ->setSeatsFrom($seatsFrom)
            ->setSeatsTo($seatsTo)
            ->setSectorsFrom($sectorsFrom)
            ->setSectorsTo($sectorsTo);
    }
    /**
     * Get AreasFrom 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 getAreasFrom()
    {
        return isset($this->AreasFrom) ? $this->AreasFrom : null;
    }
    /**
     * Set AreasFrom 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 $areasFrom
     * @return \patest\StructType\BSRO_Sales_SelectRange
     */
    public function setAreasFrom($areasFrom = null)
    {
        // validation for constraint: string
        if (!is_null($areasFrom) && !is_string($areasFrom)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($areasFrom, true), gettype($areasFrom)), __LINE__);
        }
        if (is_null($areasFrom) || (is_array($areasFrom) && empty($areasFrom))) {
            unset($this->AreasFrom);
        } else {
            $this->AreasFrom = $areasFrom;
        }
        return $this;
    }
    /**
     * Get AreasTo 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 getAreasTo()
    {
        return isset($this->AreasTo) ? $this->AreasTo : null;
    }
    /**
     * Set AreasTo 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 $areasTo
     * @return \patest\StructType\BSRO_Sales_SelectRange
     */
    public function setAreasTo($areasTo = null)
    {
        // validation for constraint: string
        if (!is_null($areasTo) && !is_string($areasTo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($areasTo, true), gettype($areasTo)), __LINE__);
        }
        if (is_null($areasTo) || (is_array($areasTo) && empty($areasTo))) {
            unset($this->AreasTo);
        } else {
            $this->AreasTo = $areasTo;
        }
        return $this;
    }
    /**
     * Get ClearAllOtherSelections 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 getClearAllOtherSelections()
    {
        return isset($this->ClearAllOtherSelections) ? $this->ClearAllOtherSelections : null;
    }
    /**
     * Set ClearAllOtherSelections 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 $clearAllOtherSelections
     * @return \patest\StructType\BSRO_Sales_SelectRange
     */
    public function setClearAllOtherSelections($clearAllOtherSelections = null)
    {
        // validation for constraint: boolean
        if (!is_null($clearAllOtherSelections) && !is_bool($clearAllOtherSelections)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($clearAllOtherSelections, true), gettype($clearAllOtherSelections)), __LINE__);
        }
        if (is_null($clearAllOtherSelections) || (is_array($clearAllOtherSelections) && empty($clearAllOtherSelections))) {
            unset($this->ClearAllOtherSelections);
        } else {
            $this->ClearAllOtherSelections = $clearAllOtherSelections;
        }
        return $this;
    }
    /**
     * Get EventDateFrom 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 getEventDateFrom()
    {
        return isset($this->EventDateFrom) ? $this->EventDateFrom : null;
    }
    /**
     * Set EventDateFrom 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 $eventDateFrom
     * @return \patest\StructType\BSRO_Sales_SelectRange
     */
    public function setEventDateFrom($eventDateFrom = null)
    {
        // validation for constraint: string
        if (!is_null($eventDateFrom) && !is_string($eventDateFrom)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($eventDateFrom, true), gettype($eventDateFrom)), __LINE__);
        }
        if (is_null($eventDateFrom) || (is_array($eventDateFrom) && empty($eventDateFrom))) {
            unset($this->EventDateFrom);
        } else {
            $this->EventDateFrom = $eventDateFrom;
        }
        return $this;
    }
    /**
     * Get EventDateTo 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 getEventDateTo()
    {
        return isset($this->EventDateTo) ? $this->EventDateTo : null;
    }
    /**
     * Set EventDateTo 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 $eventDateTo
     * @return \patest\StructType\BSRO_Sales_SelectRange
     */
    public function setEventDateTo($eventDateTo = null)
    {
        // validation for constraint: string
        if (!is_null($eventDateTo) && !is_string($eventDateTo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($eventDateTo, true), gettype($eventDateTo)), __LINE__);
        }
        if (is_null($eventDateTo) || (is_array($eventDateTo) && empty($eventDateTo))) {
            unset($this->EventDateTo);
        } else {
            $this->EventDateTo = $eventDateTo;
        }
        return $this;
    }
    /**
     * Get RowsFrom 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 getRowsFrom()
    {
        return isset($this->RowsFrom) ? $this->RowsFrom : null;
    }
    /**
     * Set RowsFrom 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 $rowsFrom
     * @return \patest\StructType\BSRO_Sales_SelectRange
     */
    public function setRowsFrom($rowsFrom = null)
    {
        // validation for constraint: string
        if (!is_null($rowsFrom) && !is_string($rowsFrom)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($rowsFrom, true), gettype($rowsFrom)), __LINE__);
        }
        if (is_null($rowsFrom) || (is_array($rowsFrom) && empty($rowsFrom))) {
            unset($this->RowsFrom);
        } else {
            $this->RowsFrom = $rowsFrom;
        }
        return $this;
    }
    /**
     * Get RowsTo 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 getRowsTo()
    {
        return isset($this->RowsTo) ? $this->RowsTo : null;
    }
    /**
     * Set RowsTo 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 $rowsTo
     * @return \patest\StructType\BSRO_Sales_SelectRange
     */
    public function setRowsTo($rowsTo = null)
    {
        // validation for constraint: string
        if (!is_null($rowsTo) && !is_string($rowsTo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($rowsTo, true), gettype($rowsTo)), __LINE__);
        }
        if (is_null($rowsTo) || (is_array($rowsTo) && empty($rowsTo))) {
            unset($this->RowsTo);
        } else {
            $this->RowsTo = $rowsTo;
        }
        return $this;
    }
    /**
     * Get SeatsFrom 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 getSeatsFrom()
    {
        return isset($this->SeatsFrom) ? $this->SeatsFrom : null;
    }
    /**
     * Set SeatsFrom 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 $seatsFrom
     * @return \patest\StructType\BSRO_Sales_SelectRange
     */
    public function setSeatsFrom($seatsFrom = null)
    {
        // validation for constraint: string
        if (!is_null($seatsFrom) && !is_string($seatsFrom)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($seatsFrom, true), gettype($seatsFrom)), __LINE__);
        }
        if (is_null($seatsFrom) || (is_array($seatsFrom) && empty($seatsFrom))) {
            unset($this->SeatsFrom);
        } else {
            $this->SeatsFrom = $seatsFrom;
        }
        return $this;
    }
    /**
     * Get SeatsTo 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 getSeatsTo()
    {
        return isset($this->SeatsTo) ? $this->SeatsTo : null;
    }
    /**
     * Set SeatsTo 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 $seatsTo
     * @return \patest\StructType\BSRO_Sales_SelectRange
     */
    public function setSeatsTo($seatsTo = null)
    {
        // validation for constraint: string
        if (!is_null($seatsTo) && !is_string($seatsTo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($seatsTo, true), gettype($seatsTo)), __LINE__);
        }
        if (is_null($seatsTo) || (is_array($seatsTo) && empty($seatsTo))) {
            unset($this->SeatsTo);
        } else {
            $this->SeatsTo = $seatsTo;
        }
        return $this;
    }
    /**
     * Get SectorsFrom 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 getSectorsFrom()
    {
        return isset($this->SectorsFrom) ? $this->SectorsFrom : null;
    }
    /**
     * Set SectorsFrom 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 $sectorsFrom
     * @return \patest\StructType\BSRO_Sales_SelectRange
     */
    public function setSectorsFrom($sectorsFrom = null)
    {
        // validation for constraint: string
        if (!is_null($sectorsFrom) && !is_string($sectorsFrom)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sectorsFrom, true), gettype($sectorsFrom)), __LINE__);
        }
        if (is_null($sectorsFrom) || (is_array($sectorsFrom) && empty($sectorsFrom))) {
            unset($this->SectorsFrom);
        } else {
            $this->SectorsFrom = $sectorsFrom;
        }
        return $this;
    }
    /**
     * Get SectorsTo 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 getSectorsTo()
    {
        return isset($this->SectorsTo) ? $this->SectorsTo : null;
    }
    /**
     * Set SectorsTo 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 $sectorsTo
     * @return \patest\StructType\BSRO_Sales_SelectRange
     */
    public function setSectorsTo($sectorsTo = null)
    {
        // validation for constraint: string
        if (!is_null($sectorsTo) && !is_string($sectorsTo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sectorsTo, true), gettype($sectorsTo)), __LINE__);
        }
        if (is_null($sectorsTo) || (is_array($sectorsTo) && empty($sectorsTo))) {
            unset($this->SectorsTo);
        } else {
            $this->SectorsTo = $sectorsTo;
        }
        return $this;
    }
}
