<?php

namespace SelectSiparis;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for SiparisKargoPaketUrun StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:SiparisKargoPaketUrun
 * @subpackage Structs
 */
class SiparisKargoPaketUrun extends AbstractStructBase
{
    /**
     * The Adet
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $Adet;
    /**
     * The ID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $ID;
    /**
     * The UrunAdi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UrunAdi;
    /**
     * The UrunID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $UrunID;
    /**
     * The UrunKartiID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $UrunKartiID;
    /**
     * The UrunResmi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UrunResmi;
    /**
     * Constructor method for SiparisKargoPaketUrun
     * @uses SiparisKargoPaketUrun::setAdet()
     * @uses SiparisKargoPaketUrun::setID()
     * @uses SiparisKargoPaketUrun::setUrunAdi()
     * @uses SiparisKargoPaketUrun::setUrunID()
     * @uses SiparisKargoPaketUrun::setUrunKartiID()
     * @uses SiparisKargoPaketUrun::setUrunResmi()
     * @param float $adet
     * @param int $iD
     * @param string $urunAdi
     * @param int $urunID
     * @param int $urunKartiID
     * @param string $urunResmi
     */
    public function __construct($adet = null, $iD = null, $urunAdi = null, $urunID = null, $urunKartiID = null, $urunResmi = null)
    {
        $this
            ->setAdet($adet)
            ->setID($iD)
            ->setUrunAdi($urunAdi)
            ->setUrunID($urunID)
            ->setUrunKartiID($urunKartiID)
            ->setUrunResmi($urunResmi);
    }
    /**
     * Get Adet value
     * @return float|null
     */
    public function getAdet()
    {
        return $this->Adet;
    }
    /**
     * Set Adet value
     * @param float $adet
     * @return \SelectSiparis\SiparisKargoPaketUrun
     */
    public function setAdet($adet = null)
    {
        // validation for constraint: float
        if (!is_null($adet) && !(is_float($adet) || is_numeric($adet))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($adet, true), gettype($adet)), __LINE__);
        }
        $this->Adet = $adet;
        return $this;
    }
    /**
     * Get ID value
     * @return int|null
     */
    public function getID()
    {
        return $this->ID;
    }
    /**
     * Set ID value
     * @param int $iD
     * @return \SelectSiparis\SiparisKargoPaketUrun
     */
    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 UrunAdi 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 getUrunAdi()
    {
        return isset($this->UrunAdi) ? $this->UrunAdi : null;
    }
    /**
     * Set UrunAdi 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 $urunAdi
     * @return \SelectSiparis\SiparisKargoPaketUrun
     */
    public function setUrunAdi($urunAdi = null)
    {
        // validation for constraint: string
        if (!is_null($urunAdi) && !is_string($urunAdi)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($urunAdi, true), gettype($urunAdi)), __LINE__);
        }
        if (is_null($urunAdi) || (is_array($urunAdi) && empty($urunAdi))) {
            unset($this->UrunAdi);
        } else {
            $this->UrunAdi = $urunAdi;
        }
        return $this;
    }
    /**
     * Get UrunID value
     * @return int|null
     */
    public function getUrunID()
    {
        return $this->UrunID;
    }
    /**
     * Set UrunID value
     * @param int $urunID
     * @return \SelectSiparis\SiparisKargoPaketUrun
     */
    public function setUrunID($urunID = null)
    {
        // validation for constraint: int
        if (!is_null($urunID) && !(is_int($urunID) || ctype_digit($urunID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($urunID, true), gettype($urunID)), __LINE__);
        }
        $this->UrunID = $urunID;
        return $this;
    }
    /**
     * Get UrunKartiID value
     * @return int|null
     */
    public function getUrunKartiID()
    {
        return $this->UrunKartiID;
    }
    /**
     * Set UrunKartiID value
     * @param int $urunKartiID
     * @return \SelectSiparis\SiparisKargoPaketUrun
     */
    public function setUrunKartiID($urunKartiID = null)
    {
        // validation for constraint: int
        if (!is_null($urunKartiID) && !(is_int($urunKartiID) || ctype_digit($urunKartiID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($urunKartiID, true), gettype($urunKartiID)), __LINE__);
        }
        $this->UrunKartiID = $urunKartiID;
        return $this;
    }
    /**
     * Get UrunResmi 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 getUrunResmi()
    {
        return isset($this->UrunResmi) ? $this->UrunResmi : null;
    }
    /**
     * Set UrunResmi 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 $urunResmi
     * @return \SelectSiparis\SiparisKargoPaketUrun
     */
    public function setUrunResmi($urunResmi = null)
    {
        // validation for constraint: string
        if (!is_null($urunResmi) && !is_string($urunResmi)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($urunResmi, true), gettype($urunResmi)), __LINE__);
        }
        if (is_null($urunResmi) || (is_array($urunResmi) && empty($urunResmi))) {
            unset($this->UrunResmi);
        } else {
            $this->UrunResmi = $urunResmi;
        }
        return $this;
    }
}
