<?php
use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for IscrizioneTurno StructType
 * @subpackage Structs
 */
class IscrizioneTurno extends AbstractStructBase
{
    /**
     * The IDOperatore
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $IDOperatore;
    /**
     * The IDTestata
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $IDTestata;
    /**
     * The OraDa
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $OraDa;
    /**
     * The OraA
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $OraA;
    /**
     * The NoteAssociazione
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NoteAssociazione;
    /**
     * The NoteOperatore
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NoteOperatore;
    /**
     * The IDAttivita
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $IDAttivita;
    /**
     * Constructor method for IscrizioneTurno
     * @uses IscrizioneTurno::setIDOperatore()
     * @uses IscrizioneTurno::setIDTestata()
     * @uses IscrizioneTurno::setOraDa()
     * @uses IscrizioneTurno::setOraA()
     * @uses IscrizioneTurno::setNoteAssociazione()
     * @uses IscrizioneTurno::setNoteOperatore()
     * @uses IscrizioneTurno::setIDAttivita()
     * @param int $iDOperatore
     * @param int $iDTestata
     * @param string $oraDa
     * @param string $oraA
     * @param string $noteAssociazione
     * @param string $noteOperatore
     * @param int $iDAttivita
     */
    public function __construct($iDOperatore = null, $iDTestata = null, $oraDa = null, $oraA = null, $noteAssociazione = null, $noteOperatore = null, $iDAttivita = null)
    {
        $this
            ->setIDOperatore($iDOperatore)
            ->setIDTestata($iDTestata)
            ->setOraDa($oraDa)
            ->setOraA($oraA)
            ->setNoteAssociazione($noteAssociazione)
            ->setNoteOperatore($noteOperatore)
            ->setIDAttivita($iDAttivita);
    }
    /**
     * Get IDOperatore value
     * @return int|null
     */
    public function getIDOperatore()
    {
        return $this->IDOperatore;
    }
    /**
     * Set IDOperatore value
     * @param int $iDOperatore
     * @return IscrizioneTurno
     */
    public function setIDOperatore($iDOperatore = null)
    {
        // validation for constraint: int
        if (!is_null($iDOperatore) && !(is_int($iDOperatore) || ctype_digit($iDOperatore))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($iDOperatore, true), gettype($iDOperatore)), __LINE__);
        }
        $this->IDOperatore = $iDOperatore;
        return $this;
    }
    /**
     * Get IDTestata value
     * @return int|null
     */
    public function getIDTestata()
    {
        return $this->IDTestata;
    }
    /**
     * Set IDTestata value
     * @param int $iDTestata
     * @return IscrizioneTurno
     */
    public function setIDTestata($iDTestata = null)
    {
        // validation for constraint: int
        if (!is_null($iDTestata) && !(is_int($iDTestata) || ctype_digit($iDTestata))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($iDTestata, true), gettype($iDTestata)), __LINE__);
        }
        $this->IDTestata = $iDTestata;
        return $this;
    }
    /**
     * Get OraDa 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 getOraDa()
    {
        return isset($this->OraDa) ? $this->OraDa : null;
    }
    /**
     * Set OraDa 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 $oraDa
     * @return IscrizioneTurno
     */
    public function setOraDa($oraDa = null)
    {
        // validation for constraint: string
        if (!is_null($oraDa) && !is_string($oraDa)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($oraDa, true), gettype($oraDa)), __LINE__);
        }
        if (is_null($oraDa) || (is_array($oraDa) && empty($oraDa))) {
            unset($this->OraDa);
        } else {
            $this->OraDa = $oraDa;
        }
        return $this;
    }
    /**
     * Get OraA 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 getOraA()
    {
        return isset($this->OraA) ? $this->OraA : null;
    }
    /**
     * Set OraA 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 $oraA
     * @return IscrizioneTurno
     */
    public function setOraA($oraA = null)
    {
        // validation for constraint: string
        if (!is_null($oraA) && !is_string($oraA)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($oraA, true), gettype($oraA)), __LINE__);
        }
        if (is_null($oraA) || (is_array($oraA) && empty($oraA))) {
            unset($this->OraA);
        } else {
            $this->OraA = $oraA;
        }
        return $this;
    }
    /**
     * Get NoteAssociazione 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 getNoteAssociazione()
    {
        return isset($this->NoteAssociazione) ? $this->NoteAssociazione : null;
    }
    /**
     * Set NoteAssociazione 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 $noteAssociazione
     * @return IscrizioneTurno
     */
    public function setNoteAssociazione($noteAssociazione = null)
    {
        // validation for constraint: string
        if (!is_null($noteAssociazione) && !is_string($noteAssociazione)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($noteAssociazione, true), gettype($noteAssociazione)), __LINE__);
        }
        if (is_null($noteAssociazione) || (is_array($noteAssociazione) && empty($noteAssociazione))) {
            unset($this->NoteAssociazione);
        } else {
            $this->NoteAssociazione = $noteAssociazione;
        }
        return $this;
    }
    /**
     * Get NoteOperatore 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 getNoteOperatore()
    {
        return isset($this->NoteOperatore) ? $this->NoteOperatore : null;
    }
    /**
     * Set NoteOperatore 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 $noteOperatore
     * @return IscrizioneTurno
     */
    public function setNoteOperatore($noteOperatore = null)
    {
        // validation for constraint: string
        if (!is_null($noteOperatore) && !is_string($noteOperatore)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($noteOperatore, true), gettype($noteOperatore)), __LINE__);
        }
        if (is_null($noteOperatore) || (is_array($noteOperatore) && empty($noteOperatore))) {
            unset($this->NoteOperatore);
        } else {
            $this->NoteOperatore = $noteOperatore;
        }
        return $this;
    }
    /**
     * Get IDAttivita value
     * @return int|null
     */
    public function getIDAttivita()
    {
        return $this->IDAttivita;
    }
    /**
     * Set IDAttivita value
     * @param int $iDAttivita
     * @return IscrizioneTurno
     */
    public function setIDAttivita($iDAttivita = null)
    {
        // validation for constraint: int
        if (!is_null($iDAttivita) && !(is_int($iDAttivita) || ctype_digit($iDAttivita))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($iDAttivita, true), gettype($iDAttivita)), __LINE__);
        }
        $this->IDAttivita = $iDAttivita;
        return $this;
    }
}
