<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for HelpDesk.ServiceRequestFilter StructType
 * @subpackage Structs
 */
class HelpDesk_ServiceRequestFilter extends HelpDesk_CommonFindRequest
{
    /**
     * The ExtendedData1
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ExtendedData1;
    /**
     * The ExtendedData10
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ExtendedData10;
    /**
     * The ExtendedData11
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ExtendedData11;
    /**
     * The ExtendedData12
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ExtendedData12;
    /**
     * The ExtendedData13
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ExtendedData13;
    /**
     * The ExtendedData14
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ExtendedData14;
    /**
     * The ExtendedData2
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ExtendedData2;
    /**
     * The ExtendedData3
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ExtendedData3;
    /**
     * The ExtendedData4
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ExtendedData4;
    /**
     * The ExtendedData5
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ExtendedData5;
    /**
     * The ExtendedData6
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ExtendedData6;
    /**
     * The ExtendedData7
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ExtendedData7;
    /**
     * The ExtendedData8
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ExtendedData8;
    /**
     * The ExtendedData9
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ExtendedData9;
    /**
     * The ShowAlsoSubordinates
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $ShowAlsoSubordinates;
    /**
     * Constructor method for HelpDesk.ServiceRequestFilter
     * @uses HelpDesk_ServiceRequestFilter::setExtendedData1()
     * @uses HelpDesk_ServiceRequestFilter::setExtendedData10()
     * @uses HelpDesk_ServiceRequestFilter::setExtendedData11()
     * @uses HelpDesk_ServiceRequestFilter::setExtendedData12()
     * @uses HelpDesk_ServiceRequestFilter::setExtendedData13()
     * @uses HelpDesk_ServiceRequestFilter::setExtendedData14()
     * @uses HelpDesk_ServiceRequestFilter::setExtendedData2()
     * @uses HelpDesk_ServiceRequestFilter::setExtendedData3()
     * @uses HelpDesk_ServiceRequestFilter::setExtendedData4()
     * @uses HelpDesk_ServiceRequestFilter::setExtendedData5()
     * @uses HelpDesk_ServiceRequestFilter::setExtendedData6()
     * @uses HelpDesk_ServiceRequestFilter::setExtendedData7()
     * @uses HelpDesk_ServiceRequestFilter::setExtendedData8()
     * @uses HelpDesk_ServiceRequestFilter::setExtendedData9()
     * @uses HelpDesk_ServiceRequestFilter::setShowAlsoSubordinates()
     * @param string $extendedData1
     * @param string $extendedData10
     * @param string $extendedData11
     * @param string $extendedData12
     * @param string $extendedData13
     * @param string $extendedData14
     * @param string $extendedData2
     * @param string $extendedData3
     * @param string $extendedData4
     * @param string $extendedData5
     * @param string $extendedData6
     * @param string $extendedData7
     * @param string $extendedData8
     * @param string $extendedData9
     * @param bool $showAlsoSubordinates
     */
    public function __construct($extendedData1 = null, $extendedData10 = null, $extendedData11 = null, $extendedData12 = null, $extendedData13 = null, $extendedData14 = null, $extendedData2 = null, $extendedData3 = null, $extendedData4 = null, $extendedData5 = null, $extendedData6 = null, $extendedData7 = null, $extendedData8 = null, $extendedData9 = null, $showAlsoSubordinates = null)
    {
        $this
            ->setExtendedData1($extendedData1)
            ->setExtendedData10($extendedData10)
            ->setExtendedData11($extendedData11)
            ->setExtendedData12($extendedData12)
            ->setExtendedData13($extendedData13)
            ->setExtendedData14($extendedData14)
            ->setExtendedData2($extendedData2)
            ->setExtendedData3($extendedData3)
            ->setExtendedData4($extendedData4)
            ->setExtendedData5($extendedData5)
            ->setExtendedData6($extendedData6)
            ->setExtendedData7($extendedData7)
            ->setExtendedData8($extendedData8)
            ->setExtendedData9($extendedData9)
            ->setShowAlsoSubordinates($showAlsoSubordinates);
    }
    /**
     * Get ExtendedData1 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 getExtendedData1()
    {
        return isset($this->ExtendedData1) ? $this->ExtendedData1 : null;
    }
    /**
     * Set ExtendedData1 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 $extendedData1
     * @return \patest\StructType\HelpDesk_ServiceRequestFilter
     */
    public function setExtendedData1($extendedData1 = null)
    {
        // validation for constraint: string
        if (!is_null($extendedData1) && !is_string($extendedData1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($extendedData1, true), gettype($extendedData1)), __LINE__);
        }
        if (is_null($extendedData1) || (is_array($extendedData1) && empty($extendedData1))) {
            unset($this->ExtendedData1);
        } else {
            $this->ExtendedData1 = $extendedData1;
        }
        return $this;
    }
    /**
     * Get ExtendedData10 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 getExtendedData10()
    {
        return isset($this->ExtendedData10) ? $this->ExtendedData10 : null;
    }
    /**
     * Set ExtendedData10 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 $extendedData10
     * @return \patest\StructType\HelpDesk_ServiceRequestFilter
     */
    public function setExtendedData10($extendedData10 = null)
    {
        // validation for constraint: string
        if (!is_null($extendedData10) && !is_string($extendedData10)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($extendedData10, true), gettype($extendedData10)), __LINE__);
        }
        if (is_null($extendedData10) || (is_array($extendedData10) && empty($extendedData10))) {
            unset($this->ExtendedData10);
        } else {
            $this->ExtendedData10 = $extendedData10;
        }
        return $this;
    }
    /**
     * Get ExtendedData11 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 getExtendedData11()
    {
        return isset($this->ExtendedData11) ? $this->ExtendedData11 : null;
    }
    /**
     * Set ExtendedData11 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 $extendedData11
     * @return \patest\StructType\HelpDesk_ServiceRequestFilter
     */
    public function setExtendedData11($extendedData11 = null)
    {
        // validation for constraint: string
        if (!is_null($extendedData11) && !is_string($extendedData11)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($extendedData11, true), gettype($extendedData11)), __LINE__);
        }
        if (is_null($extendedData11) || (is_array($extendedData11) && empty($extendedData11))) {
            unset($this->ExtendedData11);
        } else {
            $this->ExtendedData11 = $extendedData11;
        }
        return $this;
    }
    /**
     * Get ExtendedData12 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 getExtendedData12()
    {
        return isset($this->ExtendedData12) ? $this->ExtendedData12 : null;
    }
    /**
     * Set ExtendedData12 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 $extendedData12
     * @return \patest\StructType\HelpDesk_ServiceRequestFilter
     */
    public function setExtendedData12($extendedData12 = null)
    {
        // validation for constraint: string
        if (!is_null($extendedData12) && !is_string($extendedData12)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($extendedData12, true), gettype($extendedData12)), __LINE__);
        }
        if (is_null($extendedData12) || (is_array($extendedData12) && empty($extendedData12))) {
            unset($this->ExtendedData12);
        } else {
            $this->ExtendedData12 = $extendedData12;
        }
        return $this;
    }
    /**
     * Get ExtendedData13 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 getExtendedData13()
    {
        return isset($this->ExtendedData13) ? $this->ExtendedData13 : null;
    }
    /**
     * Set ExtendedData13 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 $extendedData13
     * @return \patest\StructType\HelpDesk_ServiceRequestFilter
     */
    public function setExtendedData13($extendedData13 = null)
    {
        // validation for constraint: string
        if (!is_null($extendedData13) && !is_string($extendedData13)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($extendedData13, true), gettype($extendedData13)), __LINE__);
        }
        if (is_null($extendedData13) || (is_array($extendedData13) && empty($extendedData13))) {
            unset($this->ExtendedData13);
        } else {
            $this->ExtendedData13 = $extendedData13;
        }
        return $this;
    }
    /**
     * Get ExtendedData14 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 getExtendedData14()
    {
        return isset($this->ExtendedData14) ? $this->ExtendedData14 : null;
    }
    /**
     * Set ExtendedData14 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 $extendedData14
     * @return \patest\StructType\HelpDesk_ServiceRequestFilter
     */
    public function setExtendedData14($extendedData14 = null)
    {
        // validation for constraint: string
        if (!is_null($extendedData14) && !is_string($extendedData14)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($extendedData14, true), gettype($extendedData14)), __LINE__);
        }
        if (is_null($extendedData14) || (is_array($extendedData14) && empty($extendedData14))) {
            unset($this->ExtendedData14);
        } else {
            $this->ExtendedData14 = $extendedData14;
        }
        return $this;
    }
    /**
     * Get ExtendedData2 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 getExtendedData2()
    {
        return isset($this->ExtendedData2) ? $this->ExtendedData2 : null;
    }
    /**
     * Set ExtendedData2 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 $extendedData2
     * @return \patest\StructType\HelpDesk_ServiceRequestFilter
     */
    public function setExtendedData2($extendedData2 = null)
    {
        // validation for constraint: string
        if (!is_null($extendedData2) && !is_string($extendedData2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($extendedData2, true), gettype($extendedData2)), __LINE__);
        }
        if (is_null($extendedData2) || (is_array($extendedData2) && empty($extendedData2))) {
            unset($this->ExtendedData2);
        } else {
            $this->ExtendedData2 = $extendedData2;
        }
        return $this;
    }
    /**
     * Get ExtendedData3 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 getExtendedData3()
    {
        return isset($this->ExtendedData3) ? $this->ExtendedData3 : null;
    }
    /**
     * Set ExtendedData3 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 $extendedData3
     * @return \patest\StructType\HelpDesk_ServiceRequestFilter
     */
    public function setExtendedData3($extendedData3 = null)
    {
        // validation for constraint: string
        if (!is_null($extendedData3) && !is_string($extendedData3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($extendedData3, true), gettype($extendedData3)), __LINE__);
        }
        if (is_null($extendedData3) || (is_array($extendedData3) && empty($extendedData3))) {
            unset($this->ExtendedData3);
        } else {
            $this->ExtendedData3 = $extendedData3;
        }
        return $this;
    }
    /**
     * Get ExtendedData4 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 getExtendedData4()
    {
        return isset($this->ExtendedData4) ? $this->ExtendedData4 : null;
    }
    /**
     * Set ExtendedData4 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 $extendedData4
     * @return \patest\StructType\HelpDesk_ServiceRequestFilter
     */
    public function setExtendedData4($extendedData4 = null)
    {
        // validation for constraint: string
        if (!is_null($extendedData4) && !is_string($extendedData4)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($extendedData4, true), gettype($extendedData4)), __LINE__);
        }
        if (is_null($extendedData4) || (is_array($extendedData4) && empty($extendedData4))) {
            unset($this->ExtendedData4);
        } else {
            $this->ExtendedData4 = $extendedData4;
        }
        return $this;
    }
    /**
     * Get ExtendedData5 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 getExtendedData5()
    {
        return isset($this->ExtendedData5) ? $this->ExtendedData5 : null;
    }
    /**
     * Set ExtendedData5 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 $extendedData5
     * @return \patest\StructType\HelpDesk_ServiceRequestFilter
     */
    public function setExtendedData5($extendedData5 = null)
    {
        // validation for constraint: string
        if (!is_null($extendedData5) && !is_string($extendedData5)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($extendedData5, true), gettype($extendedData5)), __LINE__);
        }
        if (is_null($extendedData5) || (is_array($extendedData5) && empty($extendedData5))) {
            unset($this->ExtendedData5);
        } else {
            $this->ExtendedData5 = $extendedData5;
        }
        return $this;
    }
    /**
     * Get ExtendedData6 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 getExtendedData6()
    {
        return isset($this->ExtendedData6) ? $this->ExtendedData6 : null;
    }
    /**
     * Set ExtendedData6 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 $extendedData6
     * @return \patest\StructType\HelpDesk_ServiceRequestFilter
     */
    public function setExtendedData6($extendedData6 = null)
    {
        // validation for constraint: string
        if (!is_null($extendedData6) && !is_string($extendedData6)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($extendedData6, true), gettype($extendedData6)), __LINE__);
        }
        if (is_null($extendedData6) || (is_array($extendedData6) && empty($extendedData6))) {
            unset($this->ExtendedData6);
        } else {
            $this->ExtendedData6 = $extendedData6;
        }
        return $this;
    }
    /**
     * Get ExtendedData7 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 getExtendedData7()
    {
        return isset($this->ExtendedData7) ? $this->ExtendedData7 : null;
    }
    /**
     * Set ExtendedData7 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 $extendedData7
     * @return \patest\StructType\HelpDesk_ServiceRequestFilter
     */
    public function setExtendedData7($extendedData7 = null)
    {
        // validation for constraint: string
        if (!is_null($extendedData7) && !is_string($extendedData7)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($extendedData7, true), gettype($extendedData7)), __LINE__);
        }
        if (is_null($extendedData7) || (is_array($extendedData7) && empty($extendedData7))) {
            unset($this->ExtendedData7);
        } else {
            $this->ExtendedData7 = $extendedData7;
        }
        return $this;
    }
    /**
     * Get ExtendedData8 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 getExtendedData8()
    {
        return isset($this->ExtendedData8) ? $this->ExtendedData8 : null;
    }
    /**
     * Set ExtendedData8 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 $extendedData8
     * @return \patest\StructType\HelpDesk_ServiceRequestFilter
     */
    public function setExtendedData8($extendedData8 = null)
    {
        // validation for constraint: string
        if (!is_null($extendedData8) && !is_string($extendedData8)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($extendedData8, true), gettype($extendedData8)), __LINE__);
        }
        if (is_null($extendedData8) || (is_array($extendedData8) && empty($extendedData8))) {
            unset($this->ExtendedData8);
        } else {
            $this->ExtendedData8 = $extendedData8;
        }
        return $this;
    }
    /**
     * Get ExtendedData9 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 getExtendedData9()
    {
        return isset($this->ExtendedData9) ? $this->ExtendedData9 : null;
    }
    /**
     * Set ExtendedData9 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 $extendedData9
     * @return \patest\StructType\HelpDesk_ServiceRequestFilter
     */
    public function setExtendedData9($extendedData9 = null)
    {
        // validation for constraint: string
        if (!is_null($extendedData9) && !is_string($extendedData9)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($extendedData9, true), gettype($extendedData9)), __LINE__);
        }
        if (is_null($extendedData9) || (is_array($extendedData9) && empty($extendedData9))) {
            unset($this->ExtendedData9);
        } else {
            $this->ExtendedData9 = $extendedData9;
        }
        return $this;
    }
    /**
     * Get ShowAlsoSubordinates 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 getShowAlsoSubordinates()
    {
        return isset($this->ShowAlsoSubordinates) ? $this->ShowAlsoSubordinates : null;
    }
    /**
     * Set ShowAlsoSubordinates 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 $showAlsoSubordinates
     * @return \patest\StructType\HelpDesk_ServiceRequestFilter
     */
    public function setShowAlsoSubordinates($showAlsoSubordinates = null)
    {
        // validation for constraint: boolean
        if (!is_null($showAlsoSubordinates) && !is_bool($showAlsoSubordinates)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($showAlsoSubordinates, true), gettype($showAlsoSubordinates)), __LINE__);
        }
        if (is_null($showAlsoSubordinates) || (is_array($showAlsoSubordinates) && empty($showAlsoSubordinates))) {
            unset($this->ShowAlsoSubordinates);
        } else {
            $this->ShowAlsoSubordinates = $showAlsoSubordinates;
        }
        return $this;
    }
}
