<?php

namespace SelectSiparis;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for SaveEFatura StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:SaveEFatura
 * @subpackage Structs
 */
class SaveEFatura extends AbstractStructBase
{
    /**
     * The Aciklama
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Aciklama;
    /**
     * The CustomerInVID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CustomerInVID;
    /**
     * The Detay
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Detay;
    /**
     * The DosyaAdi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DosyaAdi;
    /**
     * The DosyaUrl
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DosyaUrl;
    /**
     * The EFaturaTuru
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $EFaturaTuru;
    /**
     * The EnVuuId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $EnVuuId;
    /**
     * The FaturaNumarasi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $FaturaNumarasi;
    /**
     * The FaturaTipi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $FaturaTipi;
    /**
     * The Id
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $Id;
    /**
     * The KdvHaricToplamTutar
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $KdvHaricToplamTutar;
    /**
     * The OlusturmaTarihi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $OlusturmaTarihi;
    /**
     * The Sha256Hash
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Sha256Hash;
    /**
     * The SiparisId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $SiparisId;
    /**
     * The SiparisNo
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SiparisNo;
    /**
     * The UUID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UUID;
    /**
     * The VKN
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $VKN;
    /**
     * The UyeKodu
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UyeKodu;
    /**
     * The request
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \SelectSiparis\SaveEFaturaRequest
     */
    public $request;
    /**
     * Constructor method for SaveEFatura
     * @uses SaveEFatura::setAciklama()
     * @uses SaveEFatura::setCustomerInVID()
     * @uses SaveEFatura::setDetay()
     * @uses SaveEFatura::setDosyaAdi()
     * @uses SaveEFatura::setDosyaUrl()
     * @uses SaveEFatura::setEFaturaTuru()
     * @uses SaveEFatura::setEnVuuId()
     * @uses SaveEFatura::setFaturaNumarasi()
     * @uses SaveEFatura::setFaturaTipi()
     * @uses SaveEFatura::setId()
     * @uses SaveEFatura::setKdvHaricToplamTutar()
     * @uses SaveEFatura::setOlusturmaTarihi()
     * @uses SaveEFatura::setSha256Hash()
     * @uses SaveEFatura::setSiparisId()
     * @uses SaveEFatura::setSiparisNo()
     * @uses SaveEFatura::setUUID()
     * @uses SaveEFatura::setVKN()
     * @uses SaveEFatura::setUyeKodu()
     * @uses SaveEFatura::setRequest()
     * @param string $aciklama
     * @param string $customerInVID
     * @param string $detay
     * @param string $dosyaAdi
     * @param string $dosyaUrl
     * @param string $eFaturaTuru
     * @param string $enVuuId
     * @param string $faturaNumarasi
     * @param int $faturaTipi
     * @param int $id
     * @param float $kdvHaricToplamTutar
     * @param string $olusturmaTarihi
     * @param string $sha256Hash
     * @param int $siparisId
     * @param string $siparisNo
     * @param string $uUID
     * @param string $vKN
     * @param string $uyeKodu
     * @param \SelectSiparis\SaveEFaturaRequest $request
     */
    public function __construct($aciklama = null, $customerInVID = null, $detay = null, $dosyaAdi = null, $dosyaUrl = null, $eFaturaTuru = null, $enVuuId = null, $faturaNumarasi = null, $faturaTipi = null, $id = null, $kdvHaricToplamTutar = null, $olusturmaTarihi = null, $sha256Hash = null, $siparisId = null, $siparisNo = null, $uUID = null, $vKN = null, $uyeKodu = null, \SelectSiparis\SaveEFaturaRequest $request = null)
    {
        $this
            ->setAciklama($aciklama)
            ->setCustomerInVID($customerInVID)
            ->setDetay($detay)
            ->setDosyaAdi($dosyaAdi)
            ->setDosyaUrl($dosyaUrl)
            ->setEFaturaTuru($eFaturaTuru)
            ->setEnVuuId($enVuuId)
            ->setFaturaNumarasi($faturaNumarasi)
            ->setFaturaTipi($faturaTipi)
            ->setId($id)
            ->setKdvHaricToplamTutar($kdvHaricToplamTutar)
            ->setOlusturmaTarihi($olusturmaTarihi)
            ->setSha256Hash($sha256Hash)
            ->setSiparisId($siparisId)
            ->setSiparisNo($siparisNo)
            ->setUUID($uUID)
            ->setVKN($vKN)
            ->setUyeKodu($uyeKodu)
            ->setRequest($request);
    }
    /**
     * Get Aciklama 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 getAciklama()
    {
        return isset($this->Aciklama) ? $this->Aciklama : null;
    }
    /**
     * Set Aciklama 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 $aciklama
     * @return \SelectSiparis\SaveEFatura
     */
    public function setAciklama($aciklama = null)
    {
        // validation for constraint: string
        if (!is_null($aciklama) && !is_string($aciklama)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($aciklama, true), gettype($aciklama)), __LINE__);
        }
        if (is_null($aciklama) || (is_array($aciklama) && empty($aciklama))) {
            unset($this->Aciklama);
        } else {
            $this->Aciklama = $aciklama;
        }
        return $this;
    }
    /**
     * Get CustomerInVID 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 getCustomerInVID()
    {
        return isset($this->CustomerInVID) ? $this->CustomerInVID : null;
    }
    /**
     * Set CustomerInVID 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 $customerInVID
     * @return \SelectSiparis\SaveEFatura
     */
    public function setCustomerInVID($customerInVID = null)
    {
        // validation for constraint: string
        if (!is_null($customerInVID) && !is_string($customerInVID)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($customerInVID, true), gettype($customerInVID)), __LINE__);
        }
        if (is_null($customerInVID) || (is_array($customerInVID) && empty($customerInVID))) {
            unset($this->CustomerInVID);
        } else {
            $this->CustomerInVID = $customerInVID;
        }
        return $this;
    }
    /**
     * Get Detay 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 getDetay()
    {
        return isset($this->Detay) ? $this->Detay : null;
    }
    /**
     * Set Detay 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 $detay
     * @return \SelectSiparis\SaveEFatura
     */
    public function setDetay($detay = null)
    {
        // validation for constraint: string
        if (!is_null($detay) && !is_string($detay)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($detay, true), gettype($detay)), __LINE__);
        }
        if (is_null($detay) || (is_array($detay) && empty($detay))) {
            unset($this->Detay);
        } else {
            $this->Detay = $detay;
        }
        return $this;
    }
    /**
     * Get DosyaAdi 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 getDosyaAdi()
    {
        return isset($this->DosyaAdi) ? $this->DosyaAdi : null;
    }
    /**
     * Set DosyaAdi 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 $dosyaAdi
     * @return \SelectSiparis\SaveEFatura
     */
    public function setDosyaAdi($dosyaAdi = null)
    {
        // validation for constraint: string
        if (!is_null($dosyaAdi) && !is_string($dosyaAdi)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($dosyaAdi, true), gettype($dosyaAdi)), __LINE__);
        }
        if (is_null($dosyaAdi) || (is_array($dosyaAdi) && empty($dosyaAdi))) {
            unset($this->DosyaAdi);
        } else {
            $this->DosyaAdi = $dosyaAdi;
        }
        return $this;
    }
    /**
     * Get DosyaUrl 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 getDosyaUrl()
    {
        return isset($this->DosyaUrl) ? $this->DosyaUrl : null;
    }
    /**
     * Set DosyaUrl 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 $dosyaUrl
     * @return \SelectSiparis\SaveEFatura
     */
    public function setDosyaUrl($dosyaUrl = null)
    {
        // validation for constraint: string
        if (!is_null($dosyaUrl) && !is_string($dosyaUrl)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($dosyaUrl, true), gettype($dosyaUrl)), __LINE__);
        }
        if (is_null($dosyaUrl) || (is_array($dosyaUrl) && empty($dosyaUrl))) {
            unset($this->DosyaUrl);
        } else {
            $this->DosyaUrl = $dosyaUrl;
        }
        return $this;
    }
    /**
     * Get EFaturaTuru value
     * @return string|null
     */
    public function getEFaturaTuru()
    {
        return $this->EFaturaTuru;
    }
    /**
     * Set EFaturaTuru value
     * @uses \SelectSiparis\EFaturaTuru::valueIsValid()
     * @uses \SelectSiparis\EFaturaTuru::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $eFaturaTuru
     * @return \SelectSiparis\SaveEFatura
     */
    public function setEFaturaTuru($eFaturaTuru = null)
    {
        // validation for constraint: enumeration
        if (!\SelectSiparis\EFaturaTuru::valueIsValid($eFaturaTuru)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \SelectSiparis\EFaturaTuru', is_array($eFaturaTuru) ? implode(', ', $eFaturaTuru) : var_export($eFaturaTuru, true), implode(', ', \SelectSiparis\EFaturaTuru::getValidValues())), __LINE__);
        }
        $this->EFaturaTuru = $eFaturaTuru;
        return $this;
    }
    /**
     * Get EnVuuId 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 getEnVuuId()
    {
        return isset($this->EnVuuId) ? $this->EnVuuId : null;
    }
    /**
     * Set EnVuuId 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 $enVuuId
     * @return \SelectSiparis\SaveEFatura
     */
    public function setEnVuuId($enVuuId = null)
    {
        // validation for constraint: string
        if (!is_null($enVuuId) && !is_string($enVuuId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($enVuuId, true), gettype($enVuuId)), __LINE__);
        }
        if (is_null($enVuuId) || (is_array($enVuuId) && empty($enVuuId))) {
            unset($this->EnVuuId);
        } else {
            $this->EnVuuId = $enVuuId;
        }
        return $this;
    }
    /**
     * Get FaturaNumarasi 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 getFaturaNumarasi()
    {
        return isset($this->FaturaNumarasi) ? $this->FaturaNumarasi : null;
    }
    /**
     * Set FaturaNumarasi 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 $faturaNumarasi
     * @return \SelectSiparis\SaveEFatura
     */
    public function setFaturaNumarasi($faturaNumarasi = null)
    {
        // validation for constraint: string
        if (!is_null($faturaNumarasi) && !is_string($faturaNumarasi)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($faturaNumarasi, true), gettype($faturaNumarasi)), __LINE__);
        }
        if (is_null($faturaNumarasi) || (is_array($faturaNumarasi) && empty($faturaNumarasi))) {
            unset($this->FaturaNumarasi);
        } else {
            $this->FaturaNumarasi = $faturaNumarasi;
        }
        return $this;
    }
    /**
     * Get FaturaTipi value
     * @return int|null
     */
    public function getFaturaTipi()
    {
        return $this->FaturaTipi;
    }
    /**
     * Set FaturaTipi value
     * @param int $faturaTipi
     * @return \SelectSiparis\SaveEFatura
     */
    public function setFaturaTipi($faturaTipi = null)
    {
        // validation for constraint: int
        if (!is_null($faturaTipi) && !(is_int($faturaTipi) || ctype_digit($faturaTipi))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($faturaTipi, true), gettype($faturaTipi)), __LINE__);
        }
        $this->FaturaTipi = $faturaTipi;
        return $this;
    }
    /**
     * Get Id value
     * @return int|null
     */
    public function getId()
    {
        return $this->Id;
    }
    /**
     * Set Id value
     * @param int $id
     * @return \SelectSiparis\SaveEFatura
     */
    public function setId($id = null)
    {
        // validation for constraint: int
        if (!is_null($id) && !(is_int($id) || ctype_digit($id))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($id, true), gettype($id)), __LINE__);
        }
        $this->Id = $id;
        return $this;
    }
    /**
     * Get KdvHaricToplamTutar value
     * @return float|null
     */
    public function getKdvHaricToplamTutar()
    {
        return $this->KdvHaricToplamTutar;
    }
    /**
     * Set KdvHaricToplamTutar value
     * @param float $kdvHaricToplamTutar
     * @return \SelectSiparis\SaveEFatura
     */
    public function setKdvHaricToplamTutar($kdvHaricToplamTutar = null)
    {
        // validation for constraint: float
        if (!is_null($kdvHaricToplamTutar) && !(is_float($kdvHaricToplamTutar) || is_numeric($kdvHaricToplamTutar))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($kdvHaricToplamTutar, true), gettype($kdvHaricToplamTutar)), __LINE__);
        }
        $this->KdvHaricToplamTutar = $kdvHaricToplamTutar;
        return $this;
    }
    /**
     * Get OlusturmaTarihi 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 getOlusturmaTarihi()
    {
        return isset($this->OlusturmaTarihi) ? $this->OlusturmaTarihi : null;
    }
    /**
     * Set OlusturmaTarihi 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 $olusturmaTarihi
     * @return \SelectSiparis\SaveEFatura
     */
    public function setOlusturmaTarihi($olusturmaTarihi = null)
    {
        // validation for constraint: string
        if (!is_null($olusturmaTarihi) && !is_string($olusturmaTarihi)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($olusturmaTarihi, true), gettype($olusturmaTarihi)), __LINE__);
        }
        if (is_null($olusturmaTarihi) || (is_array($olusturmaTarihi) && empty($olusturmaTarihi))) {
            unset($this->OlusturmaTarihi);
        } else {
            $this->OlusturmaTarihi = $olusturmaTarihi;
        }
        return $this;
    }
    /**
     * Get Sha256Hash 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 getSha256Hash()
    {
        return isset($this->Sha256Hash) ? $this->Sha256Hash : null;
    }
    /**
     * Set Sha256Hash 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 $sha256Hash
     * @return \SelectSiparis\SaveEFatura
     */
    public function setSha256Hash($sha256Hash = null)
    {
        // validation for constraint: string
        if (!is_null($sha256Hash) && !is_string($sha256Hash)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sha256Hash, true), gettype($sha256Hash)), __LINE__);
        }
        if (is_null($sha256Hash) || (is_array($sha256Hash) && empty($sha256Hash))) {
            unset($this->Sha256Hash);
        } else {
            $this->Sha256Hash = $sha256Hash;
        }
        return $this;
    }
    /**
     * Get SiparisId value
     * @return int|null
     */
    public function getSiparisId()
    {
        return $this->SiparisId;
    }
    /**
     * Set SiparisId value
     * @param int $siparisId
     * @return \SelectSiparis\SaveEFatura
     */
    public function setSiparisId($siparisId = null)
    {
        // validation for constraint: int
        if (!is_null($siparisId) && !(is_int($siparisId) || ctype_digit($siparisId))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($siparisId, true), gettype($siparisId)), __LINE__);
        }
        $this->SiparisId = $siparisId;
        return $this;
    }
    /**
     * Get SiparisNo 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 getSiparisNo()
    {
        return isset($this->SiparisNo) ? $this->SiparisNo : null;
    }
    /**
     * Set SiparisNo 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 $siparisNo
     * @return \SelectSiparis\SaveEFatura
     */
    public function setSiparisNo($siparisNo = null)
    {
        // validation for constraint: string
        if (!is_null($siparisNo) && !is_string($siparisNo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($siparisNo, true), gettype($siparisNo)), __LINE__);
        }
        if (is_null($siparisNo) || (is_array($siparisNo) && empty($siparisNo))) {
            unset($this->SiparisNo);
        } else {
            $this->SiparisNo = $siparisNo;
        }
        return $this;
    }
    /**
     * Get UUID 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 getUUID()
    {
        return isset($this->UUID) ? $this->UUID : null;
    }
    /**
     * Set UUID 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 $uUID
     * @return \SelectSiparis\SaveEFatura
     */
    public function setUUID($uUID = null)
    {
        // validation for constraint: string
        if (!is_null($uUID) && !is_string($uUID)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($uUID, true), gettype($uUID)), __LINE__);
        }
        if (is_null($uUID) || (is_array($uUID) && empty($uUID))) {
            unset($this->UUID);
        } else {
            $this->UUID = $uUID;
        }
        return $this;
    }
    /**
     * Get VKN 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 getVKN()
    {
        return isset($this->VKN) ? $this->VKN : null;
    }
    /**
     * Set VKN 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 $vKN
     * @return \SelectSiparis\SaveEFatura
     */
    public function setVKN($vKN = null)
    {
        // validation for constraint: string
        if (!is_null($vKN) && !is_string($vKN)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($vKN, true), gettype($vKN)), __LINE__);
        }
        if (is_null($vKN) || (is_array($vKN) && empty($vKN))) {
            unset($this->VKN);
        } else {
            $this->VKN = $vKN;
        }
        return $this;
    }
    /**
     * Get UyeKodu 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 getUyeKodu()
    {
        return isset($this->UyeKodu) ? $this->UyeKodu : null;
    }
    /**
     * Set UyeKodu 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 $uyeKodu
     * @return \SelectSiparis\SaveEFatura
     */
    public function setUyeKodu($uyeKodu = null)
    {
        // validation for constraint: string
        if (!is_null($uyeKodu) && !is_string($uyeKodu)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($uyeKodu, true), gettype($uyeKodu)), __LINE__);
        }
        if (is_null($uyeKodu) || (is_array($uyeKodu) && empty($uyeKodu))) {
            unset($this->UyeKodu);
        } else {
            $this->UyeKodu = $uyeKodu;
        }
        return $this;
    }
    /**
     * Get request 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 \SelectSiparis\SaveEFaturaRequest|null
     */
    public function getRequest()
    {
        return isset($this->request) ? $this->request : null;
    }
    /**
     * Set request 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 \SelectSiparis\SaveEFaturaRequest $request
     * @return \SelectSiparis\SaveEFatura
     */
    public function setRequest(\SelectSiparis\SaveEFaturaRequest $request = null)
    {
        if (is_null($request) || (is_array($request) && empty($request))) {
            unset($this->request);
        } else {
            $this->request = $request;
        }
        return $this;
    }
}
