<?php
use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for ModificaIscrizioneTurno2 StructType
 * @subpackage Structs
 */
class ModificaIscrizioneTurno2 extends AbstractStructBase
{
    /**
     * The IDGRuppo
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $IDGRuppo;
    /**
     * 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 IDDettaglio
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $IDDettaglio;
    /**
     * 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 ModificaIscrizioneTurno2
     * @uses ModificaIscrizioneTurno2::setIDGRuppo()
     * @uses ModificaIscrizioneTurno2::setIDOperatore()
     * @uses ModificaIscrizioneTurno2::setIDTestata()
     * @uses ModificaIscrizioneTurno2::setIDDettaglio()
     * @uses ModificaIscrizioneTurno2::setOraDa()
     * @uses ModificaIscrizioneTurno2::setOraA()
     * @uses ModificaIscrizioneTurno2::setNoteAssociazione()
     * @uses ModificaIscrizioneTurno2::setNoteOperatore()
     * @uses ModificaIscrizioneTurno2::setIDAttivita()
     * @param int $iDGRuppo
     * @param int $iDOperatore
     * @param int $iDTestata
     * @param int $iDDettaglio
     * @param string $oraDa
     * @param string $oraA
     * @param string $noteAssociazione
     * @param string $noteOperatore
     * @param int $iDAttivita
     */
    public function __construct($iDGRuppo = null, $iDOperatore = null, $iDTestata = null, $iDDettaglio = null, $oraDa = null, $oraA = null, $noteAssociazione = null, $noteOperatore = null, $iDAttivita = null)
    {
        $this
            ->setIDGRuppo($iDGRuppo)
            ->setIDOperatore($iDOperatore)
            ->setIDTestata($iDTestata)
            ->setIDDettaglio($iDDettaglio)
            ->setOraDa($oraDa)
            ->setOraA($oraA)
            ->setNoteAssociazione($noteAssociazione)
            ->setNoteOperatore($noteOperatore)
            ->setIDAttivita($iDAttivita);
    }
    /**
     * Get IDGRuppo value
     * @return int|null
     */
    public function getIDGRuppo()
    {
        return $this->IDGRuppo;
    }
    /**
     * Set IDGRuppo value
     * @param int $iDGRuppo
     * @return ModificaIscrizioneTurno2
     */
    public function setIDGRuppo($iDGRuppo = null)
    {
        // validation for constraint: int
        if (!is_null($iDGRuppo) && !(is_int($iDGRuppo) || ctype_digit($iDGRuppo))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($iDGRuppo, true), gettype($iDGRuppo)), __LINE__);
        }
        $this->IDGRuppo = $iDGRuppo;
        return $this;
    }
    /**
     * Get IDOperatore value
     * @return int|null
     */
    public function getIDOperatore()
    {
        return $this->IDOperatore;
    }
    /**
     * Set IDOperatore value
     * @param int $iDOperatore
     * @return ModificaIscrizioneTurno2
     */
    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 ModificaIscrizioneTurno2
     */
    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 IDDettaglio value
     * @return int|null
     */
    public function getIDDettaglio()
    {
        return $this->IDDettaglio;
    }
    /**
     * Set IDDettaglio value
     * @param int $iDDettaglio
     * @return ModificaIscrizioneTurno2
     */
    public function setIDDettaglio($iDDettaglio = null)
    {
        // validation for constraint: int
        if (!is_null($iDDettaglio) && !(is_int($iDDettaglio) || ctype_digit($iDDettaglio))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($iDDettaglio, true), gettype($iDDettaglio)), __LINE__);
        }
        $this->IDDettaglio = $iDDettaglio;
        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 ModificaIscrizioneTurno2
     */
    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 ModificaIscrizioneTurno2
     */
    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 ModificaIscrizioneTurno2
     */
    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 ModificaIscrizioneTurno2
     */
    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 ModificaIscrizioneTurno2
     */
    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;
    }
}
