<?php

namespace SelectSiparis;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for SiparisAnonimlestirRequest StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:SiparisAnonimlestirRequest
 * @subpackage Structs
 */
class SiparisAnonimlestirRequest extends AbstractStructBase
{
    /**
     * The SiparisKaynagi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SiparisKaynagi;
    /**
     * The SiparisKaynagiIn
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SiparisKaynagiIn;
    /**
     * The SiparisTarihBas
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SiparisTarihBas;
    /**
     * The SiparisTarihBit
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SiparisTarihBit;
    /**
     * Constructor method for SiparisAnonimlestirRequest
     * @uses SiparisAnonimlestirRequest::setSiparisKaynagi()
     * @uses SiparisAnonimlestirRequest::setSiparisKaynagiIn()
     * @uses SiparisAnonimlestirRequest::setSiparisTarihBas()
     * @uses SiparisAnonimlestirRequest::setSiparisTarihBit()
     * @param string $siparisKaynagi
     * @param string $siparisKaynagiIn
     * @param string $siparisTarihBas
     * @param string $siparisTarihBit
     */
    public function __construct($siparisKaynagi = null, $siparisKaynagiIn = null, $siparisTarihBas = null, $siparisTarihBit = null)
    {
        $this
            ->setSiparisKaynagi($siparisKaynagi)
            ->setSiparisKaynagiIn($siparisKaynagiIn)
            ->setSiparisTarihBas($siparisTarihBas)
            ->setSiparisTarihBit($siparisTarihBit);
    }
    /**
     * Get SiparisKaynagi 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 getSiparisKaynagi()
    {
        return isset($this->SiparisKaynagi) ? $this->SiparisKaynagi : null;
    }
    /**
     * Set SiparisKaynagi 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 $siparisKaynagi
     * @return \SelectSiparis\SiparisAnonimlestirRequest
     */
    public function setSiparisKaynagi($siparisKaynagi = null)
    {
        // validation for constraint: string
        if (!is_null($siparisKaynagi) && !is_string($siparisKaynagi)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($siparisKaynagi, true), gettype($siparisKaynagi)), __LINE__);
        }
        if (is_null($siparisKaynagi) || (is_array($siparisKaynagi) && empty($siparisKaynagi))) {
            unset($this->SiparisKaynagi);
        } else {
            $this->SiparisKaynagi = $siparisKaynagi;
        }
        return $this;
    }
    /**
     * Get SiparisKaynagiIn 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 getSiparisKaynagiIn()
    {
        return isset($this->SiparisKaynagiIn) ? $this->SiparisKaynagiIn : null;
    }
    /**
     * Set SiparisKaynagiIn 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 $siparisKaynagiIn
     * @return \SelectSiparis\SiparisAnonimlestirRequest
     */
    public function setSiparisKaynagiIn($siparisKaynagiIn = null)
    {
        // validation for constraint: string
        if (!is_null($siparisKaynagiIn) && !is_string($siparisKaynagiIn)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($siparisKaynagiIn, true), gettype($siparisKaynagiIn)), __LINE__);
        }
        if (is_null($siparisKaynagiIn) || (is_array($siparisKaynagiIn) && empty($siparisKaynagiIn))) {
            unset($this->SiparisKaynagiIn);
        } else {
            $this->SiparisKaynagiIn = $siparisKaynagiIn;
        }
        return $this;
    }
    /**
     * Get SiparisTarihBas 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 getSiparisTarihBas()
    {
        return isset($this->SiparisTarihBas) ? $this->SiparisTarihBas : null;
    }
    /**
     * Set SiparisTarihBas 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 $siparisTarihBas
     * @return \SelectSiparis\SiparisAnonimlestirRequest
     */
    public function setSiparisTarihBas($siparisTarihBas = null)
    {
        // validation for constraint: string
        if (!is_null($siparisTarihBas) && !is_string($siparisTarihBas)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($siparisTarihBas, true), gettype($siparisTarihBas)), __LINE__);
        }
        if (is_null($siparisTarihBas) || (is_array($siparisTarihBas) && empty($siparisTarihBas))) {
            unset($this->SiparisTarihBas);
        } else {
            $this->SiparisTarihBas = $siparisTarihBas;
        }
        return $this;
    }
    /**
     * Get SiparisTarihBit 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 getSiparisTarihBit()
    {
        return isset($this->SiparisTarihBit) ? $this->SiparisTarihBit : null;
    }
    /**
     * Set SiparisTarihBit 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 $siparisTarihBit
     * @return \SelectSiparis\SiparisAnonimlestirRequest
     */
    public function setSiparisTarihBit($siparisTarihBit = null)
    {
        // validation for constraint: string
        if (!is_null($siparisTarihBit) && !is_string($siparisTarihBit)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($siparisTarihBit, true), gettype($siparisTarihBit)), __LINE__);
        }
        if (is_null($siparisTarihBit) || (is_array($siparisTarihBit) && empty($siparisTarihBit))) {
            unset($this->SiparisTarihBit);
        } else {
            $this->SiparisTarihBit = $siparisTarihBit;
        }
        return $this;
    }
}
