<?php

namespace SelectSiparis;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for WebOzellestirmeItem StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:WebOzellestirmeItem
 * @subpackage Structs
 */
class WebOzellestirmeItem extends AbstractStructBase
{
    /**
     * The Cevap
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Cevap;
    /**
     * The Soru
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Soru;
    /**
     * The Tip
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Tip;
    /**
     * The Ucret
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $Ucret;
    /**
     * The UcretStr
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UcretStr;
    /**
     * Constructor method for WebOzellestirmeItem
     * @uses WebOzellestirmeItem::setCevap()
     * @uses WebOzellestirmeItem::setSoru()
     * @uses WebOzellestirmeItem::setTip()
     * @uses WebOzellestirmeItem::setUcret()
     * @uses WebOzellestirmeItem::setUcretStr()
     * @param string $cevap
     * @param string $soru
     * @param string $tip
     * @param float $ucret
     * @param string $ucretStr
     */
    public function __construct($cevap = null, $soru = null, $tip = null, $ucret = null, $ucretStr = null)
    {
        $this
            ->setCevap($cevap)
            ->setSoru($soru)
            ->setTip($tip)
            ->setUcret($ucret)
            ->setUcretStr($ucretStr);
    }
    /**
     * Get Cevap 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 getCevap()
    {
        return isset($this->Cevap) ? $this->Cevap : null;
    }
    /**
     * Set Cevap 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 $cevap
     * @return \SelectSiparis\WebOzellestirmeItem
     */
    public function setCevap($cevap = null)
    {
        // validation for constraint: string
        if (!is_null($cevap) && !is_string($cevap)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($cevap, true), gettype($cevap)), __LINE__);
        }
        if (is_null($cevap) || (is_array($cevap) && empty($cevap))) {
            unset($this->Cevap);
        } else {
            $this->Cevap = $cevap;
        }
        return $this;
    }
    /**
     * Get Soru 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 getSoru()
    {
        return isset($this->Soru) ? $this->Soru : null;
    }
    /**
     * Set Soru 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 $soru
     * @return \SelectSiparis\WebOzellestirmeItem
     */
    public function setSoru($soru = null)
    {
        // validation for constraint: string
        if (!is_null($soru) && !is_string($soru)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($soru, true), gettype($soru)), __LINE__);
        }
        if (is_null($soru) || (is_array($soru) && empty($soru))) {
            unset($this->Soru);
        } else {
            $this->Soru = $soru;
        }
        return $this;
    }
    /**
     * Get Tip 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 getTip()
    {
        return isset($this->Tip) ? $this->Tip : null;
    }
    /**
     * Set Tip 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 $tip
     * @return \SelectSiparis\WebOzellestirmeItem
     */
    public function setTip($tip = null)
    {
        // validation for constraint: string
        if (!is_null($tip) && !is_string($tip)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($tip, true), gettype($tip)), __LINE__);
        }
        if (is_null($tip) || (is_array($tip) && empty($tip))) {
            unset($this->Tip);
        } else {
            $this->Tip = $tip;
        }
        return $this;
    }
    /**
     * Get Ucret value
     * @return float|null
     */
    public function getUcret()
    {
        return $this->Ucret;
    }
    /**
     * Set Ucret value
     * @param float $ucret
     * @return \SelectSiparis\WebOzellestirmeItem
     */
    public function setUcret($ucret = null)
    {
        // validation for constraint: float
        if (!is_null($ucret) && !(is_float($ucret) || is_numeric($ucret))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($ucret, true), gettype($ucret)), __LINE__);
        }
        $this->Ucret = $ucret;
        return $this;
    }
    /**
     * Get UcretStr 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 getUcretStr()
    {
        return isset($this->UcretStr) ? $this->UcretStr : null;
    }
    /**
     * Set UcretStr 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 $ucretStr
     * @return \SelectSiparis\WebOzellestirmeItem
     */
    public function setUcretStr($ucretStr = null)
    {
        // validation for constraint: string
        if (!is_null($ucretStr) && !is_string($ucretStr)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ucretStr, true), gettype($ucretStr)), __LINE__);
        }
        if (is_null($ucretStr) || (is_array($ucretStr) && empty($ucretStr))) {
            unset($this->UcretStr);
        } else {
            $this->UcretStr = $ucretStr;
        }
        return $this;
    }
}
