<?php
use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for DatiCorso StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:DatiCorso
 * @subpackage Structs
 */
class DatiCorso extends AbstractStructBase
{
    /**
     * The AnnotazioniTestata
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $AnnotazioniTestata;
    /**
     * The Annotazioni_Corso
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Annotazioni_Corso;
    /**
     * The Annotazioni_Iscrizione
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Annotazioni_Iscrizione;
    /**
     * The Categoria_Descrizione
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Categoria_Descrizione;
    /**
     * The Codice
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $Codice;
    /**
     * The Codice_Anagrafe
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $Codice_Anagrafe;
    /**
     * The DataCorso
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DataCorso;
    /**
     * The Data_Iscrizione
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Data_Iscrizione;
    /**
     * The Esercizio
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Esercizio;
    /**
     * The Numeratore
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Numeratore;
    /**
     * The Numero
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $Numero;
    /**
     * The NumeroIscritti
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $NumeroIscritti;
    /**
     * The NumeroMassimoIscritti
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $NumeroMassimoIscritti;
    /**
     * The OraFineCorso
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $OraFineCorso;
    /**
     * The OraInizioCorso
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $OraInizioCorso;
    /**
     * The Riga
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $Riga;
    /**
     * The Titolo
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Titolo;
    /**
     * The TitoloTestata
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TitoloTestata;
    /**
     * The VisibilitaCorso
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $VisibilitaCorso;
    /**
     * Constructor method for DatiCorso
     * @uses DatiCorso::setAnnotazioniTestata()
     * @uses DatiCorso::setAnnotazioni_Corso()
     * @uses DatiCorso::setAnnotazioni_Iscrizione()
     * @uses DatiCorso::setCategoria_Descrizione()
     * @uses DatiCorso::setCodice()
     * @uses DatiCorso::setCodice_Anagrafe()
     * @uses DatiCorso::setDataCorso()
     * @uses DatiCorso::setData_Iscrizione()
     * @uses DatiCorso::setEsercizio()
     * @uses DatiCorso::setNumeratore()
     * @uses DatiCorso::setNumero()
     * @uses DatiCorso::setNumeroIscritti()
     * @uses DatiCorso::setNumeroMassimoIscritti()
     * @uses DatiCorso::setOraFineCorso()
     * @uses DatiCorso::setOraInizioCorso()
     * @uses DatiCorso::setRiga()
     * @uses DatiCorso::setTitolo()
     * @uses DatiCorso::setTitoloTestata()
     * @uses DatiCorso::setVisibilitaCorso()
     * @param string $annotazioniTestata
     * @param string $annotazioni_Corso
     * @param string $annotazioni_Iscrizione
     * @param string $categoria_Descrizione
     * @param int $codice
     * @param int $codice_Anagrafe
     * @param string $dataCorso
     * @param string $data_Iscrizione
     * @param string $esercizio
     * @param string $numeratore
     * @param int $numero
     * @param int $numeroIscritti
     * @param int $numeroMassimoIscritti
     * @param string $oraFineCorso
     * @param string $oraInizioCorso
     * @param int $riga
     * @param string $titolo
     * @param string $titoloTestata
     * @param int $visibilitaCorso
     */
    public function __construct($annotazioniTestata = null, $annotazioni_Corso = null, $annotazioni_Iscrizione = null, $categoria_Descrizione = null, $codice = null, $codice_Anagrafe = null, $dataCorso = null, $data_Iscrizione = null, $esercizio = null, $numeratore = null, $numero = null, $numeroIscritti = null, $numeroMassimoIscritti = null, $oraFineCorso = null, $oraInizioCorso = null, $riga = null, $titolo = null, $titoloTestata = null, $visibilitaCorso = null)
    {
        $this
            ->setAnnotazioniTestata($annotazioniTestata)
            ->setAnnotazioni_Corso($annotazioni_Corso)
            ->setAnnotazioni_Iscrizione($annotazioni_Iscrizione)
            ->setCategoria_Descrizione($categoria_Descrizione)
            ->setCodice($codice)
            ->setCodice_Anagrafe($codice_Anagrafe)
            ->setDataCorso($dataCorso)
            ->setData_Iscrizione($data_Iscrizione)
            ->setEsercizio($esercizio)
            ->setNumeratore($numeratore)
            ->setNumero($numero)
            ->setNumeroIscritti($numeroIscritti)
            ->setNumeroMassimoIscritti($numeroMassimoIscritti)
            ->setOraFineCorso($oraFineCorso)
            ->setOraInizioCorso($oraInizioCorso)
            ->setRiga($riga)
            ->setTitolo($titolo)
            ->setTitoloTestata($titoloTestata)
            ->setVisibilitaCorso($visibilitaCorso);
    }
    /**
     * Get AnnotazioniTestata 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 getAnnotazioniTestata()
    {
        return isset($this->AnnotazioniTestata) ? $this->AnnotazioniTestata : null;
    }
    /**
     * Set AnnotazioniTestata 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 $annotazioniTestata
     * @return DatiCorso
     */
    public function setAnnotazioniTestata($annotazioniTestata = null)
    {
        // validation for constraint: string
        if (!is_null($annotazioniTestata) && !is_string($annotazioniTestata)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($annotazioniTestata, true), gettype($annotazioniTestata)), __LINE__);
        }
        if (is_null($annotazioniTestata) || (is_array($annotazioniTestata) && empty($annotazioniTestata))) {
            unset($this->AnnotazioniTestata);
        } else {
            $this->AnnotazioniTestata = $annotazioniTestata;
        }
        return $this;
    }
    /**
     * Get Annotazioni_Corso 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 getAnnotazioni_Corso()
    {
        return isset($this->Annotazioni_Corso) ? $this->Annotazioni_Corso : null;
    }
    /**
     * Set Annotazioni_Corso 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 $annotazioni_Corso
     * @return DatiCorso
     */
    public function setAnnotazioni_Corso($annotazioni_Corso = null)
    {
        // validation for constraint: string
        if (!is_null($annotazioni_Corso) && !is_string($annotazioni_Corso)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($annotazioni_Corso, true), gettype($annotazioni_Corso)), __LINE__);
        }
        if (is_null($annotazioni_Corso) || (is_array($annotazioni_Corso) && empty($annotazioni_Corso))) {
            unset($this->Annotazioni_Corso);
        } else {
            $this->Annotazioni_Corso = $annotazioni_Corso;
        }
        return $this;
    }
    /**
     * Get Annotazioni_Iscrizione 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 getAnnotazioni_Iscrizione()
    {
        return isset($this->Annotazioni_Iscrizione) ? $this->Annotazioni_Iscrizione : null;
    }
    /**
     * Set Annotazioni_Iscrizione 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 $annotazioni_Iscrizione
     * @return DatiCorso
     */
    public function setAnnotazioni_Iscrizione($annotazioni_Iscrizione = null)
    {
        // validation for constraint: string
        if (!is_null($annotazioni_Iscrizione) && !is_string($annotazioni_Iscrizione)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($annotazioni_Iscrizione, true), gettype($annotazioni_Iscrizione)), __LINE__);
        }
        if (is_null($annotazioni_Iscrizione) || (is_array($annotazioni_Iscrizione) && empty($annotazioni_Iscrizione))) {
            unset($this->Annotazioni_Iscrizione);
        } else {
            $this->Annotazioni_Iscrizione = $annotazioni_Iscrizione;
        }
        return $this;
    }
    /**
     * Get Categoria_Descrizione 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 getCategoria_Descrizione()
    {
        return isset($this->Categoria_Descrizione) ? $this->Categoria_Descrizione : null;
    }
    /**
     * Set Categoria_Descrizione 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 $categoria_Descrizione
     * @return DatiCorso
     */
    public function setCategoria_Descrizione($categoria_Descrizione = null)
    {
        // validation for constraint: string
        if (!is_null($categoria_Descrizione) && !is_string($categoria_Descrizione)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($categoria_Descrizione, true), gettype($categoria_Descrizione)), __LINE__);
        }
        if (is_null($categoria_Descrizione) || (is_array($categoria_Descrizione) && empty($categoria_Descrizione))) {
            unset($this->Categoria_Descrizione);
        } else {
            $this->Categoria_Descrizione = $categoria_Descrizione;
        }
        return $this;
    }
    /**
     * Get Codice value
     * @return int|null
     */
    public function getCodice()
    {
        return $this->Codice;
    }
    /**
     * Set Codice value
     * @param int $codice
     * @return DatiCorso
     */
    public function setCodice($codice = null)
    {
        // validation for constraint: int
        if (!is_null($codice) && !(is_int($codice) || ctype_digit($codice))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($codice, true), gettype($codice)), __LINE__);
        }
        $this->Codice = $codice;
        return $this;
    }
    /**
     * Get Codice_Anagrafe value
     * @return int|null
     */
    public function getCodice_Anagrafe()
    {
        return $this->Codice_Anagrafe;
    }
    /**
     * Set Codice_Anagrafe value
     * @param int $codice_Anagrafe
     * @return DatiCorso
     */
    public function setCodice_Anagrafe($codice_Anagrafe = null)
    {
        // validation for constraint: int
        if (!is_null($codice_Anagrafe) && !(is_int($codice_Anagrafe) || ctype_digit($codice_Anagrafe))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($codice_Anagrafe, true), gettype($codice_Anagrafe)), __LINE__);
        }
        $this->Codice_Anagrafe = $codice_Anagrafe;
        return $this;
    }
    /**
     * Get DataCorso 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 getDataCorso()
    {
        return isset($this->DataCorso) ? $this->DataCorso : null;
    }
    /**
     * Set DataCorso 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 $dataCorso
     * @return DatiCorso
     */
    public function setDataCorso($dataCorso = null)
    {
        // validation for constraint: string
        if (!is_null($dataCorso) && !is_string($dataCorso)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($dataCorso, true), gettype($dataCorso)), __LINE__);
        }
        if (is_null($dataCorso) || (is_array($dataCorso) && empty($dataCorso))) {
            unset($this->DataCorso);
        } else {
            $this->DataCorso = $dataCorso;
        }
        return $this;
    }
    /**
     * Get Data_Iscrizione 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 getData_Iscrizione()
    {
        return isset($this->Data_Iscrizione) ? $this->Data_Iscrizione : null;
    }
    /**
     * Set Data_Iscrizione 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 $data_Iscrizione
     * @return DatiCorso
     */
    public function setData_Iscrizione($data_Iscrizione = null)
    {
        // validation for constraint: string
        if (!is_null($data_Iscrizione) && !is_string($data_Iscrizione)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($data_Iscrizione, true), gettype($data_Iscrizione)), __LINE__);
        }
        if (is_null($data_Iscrizione) || (is_array($data_Iscrizione) && empty($data_Iscrizione))) {
            unset($this->Data_Iscrizione);
        } else {
            $this->Data_Iscrizione = $data_Iscrizione;
        }
        return $this;
    }
    /**
     * Get Esercizio 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 getEsercizio()
    {
        return isset($this->Esercizio) ? $this->Esercizio : null;
    }
    /**
     * Set Esercizio 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 $esercizio
     * @return DatiCorso
     */
    public function setEsercizio($esercizio = null)
    {
        // validation for constraint: string
        if (!is_null($esercizio) && !is_string($esercizio)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($esercizio, true), gettype($esercizio)), __LINE__);
        }
        if (is_null($esercizio) || (is_array($esercizio) && empty($esercizio))) {
            unset($this->Esercizio);
        } else {
            $this->Esercizio = $esercizio;
        }
        return $this;
    }
    /**
     * Get Numeratore 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 getNumeratore()
    {
        return isset($this->Numeratore) ? $this->Numeratore : null;
    }
    /**
     * Set Numeratore 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 $numeratore
     * @return DatiCorso
     */
    public function setNumeratore($numeratore = null)
    {
        // validation for constraint: string
        if (!is_null($numeratore) && !is_string($numeratore)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($numeratore, true), gettype($numeratore)), __LINE__);
        }
        if (is_null($numeratore) || (is_array($numeratore) && empty($numeratore))) {
            unset($this->Numeratore);
        } else {
            $this->Numeratore = $numeratore;
        }
        return $this;
    }
    /**
     * Get Numero value
     * @return int|null
     */
    public function getNumero()
    {
        return $this->Numero;
    }
    /**
     * Set Numero value
     * @param int $numero
     * @return DatiCorso
     */
    public function setNumero($numero = null)
    {
        // validation for constraint: int
        if (!is_null($numero) && !(is_int($numero) || ctype_digit($numero))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($numero, true), gettype($numero)), __LINE__);
        }
        $this->Numero = $numero;
        return $this;
    }
    /**
     * Get NumeroIscritti value
     * @return int|null
     */
    public function getNumeroIscritti()
    {
        return $this->NumeroIscritti;
    }
    /**
     * Set NumeroIscritti value
     * @param int $numeroIscritti
     * @return DatiCorso
     */
    public function setNumeroIscritti($numeroIscritti = null)
    {
        // validation for constraint: int
        if (!is_null($numeroIscritti) && !(is_int($numeroIscritti) || ctype_digit($numeroIscritti))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($numeroIscritti, true), gettype($numeroIscritti)), __LINE__);
        }
        $this->NumeroIscritti = $numeroIscritti;
        return $this;
    }
    /**
     * Get NumeroMassimoIscritti value
     * @return int|null
     */
    public function getNumeroMassimoIscritti()
    {
        return $this->NumeroMassimoIscritti;
    }
    /**
     * Set NumeroMassimoIscritti value
     * @param int $numeroMassimoIscritti
     * @return DatiCorso
     */
    public function setNumeroMassimoIscritti($numeroMassimoIscritti = null)
    {
        // validation for constraint: int
        if (!is_null($numeroMassimoIscritti) && !(is_int($numeroMassimoIscritti) || ctype_digit($numeroMassimoIscritti))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($numeroMassimoIscritti, true), gettype($numeroMassimoIscritti)), __LINE__);
        }
        $this->NumeroMassimoIscritti = $numeroMassimoIscritti;
        return $this;
    }
    /**
     * Get OraFineCorso 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 getOraFineCorso()
    {
        return isset($this->OraFineCorso) ? $this->OraFineCorso : null;
    }
    /**
     * Set OraFineCorso 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 $oraFineCorso
     * @return DatiCorso
     */
    public function setOraFineCorso($oraFineCorso = null)
    {
        // validation for constraint: string
        if (!is_null($oraFineCorso) && !is_string($oraFineCorso)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($oraFineCorso, true), gettype($oraFineCorso)), __LINE__);
        }
        if (is_null($oraFineCorso) || (is_array($oraFineCorso) && empty($oraFineCorso))) {
            unset($this->OraFineCorso);
        } else {
            $this->OraFineCorso = $oraFineCorso;
        }
        return $this;
    }
    /**
     * Get OraInizioCorso 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 getOraInizioCorso()
    {
        return isset($this->OraInizioCorso) ? $this->OraInizioCorso : null;
    }
    /**
     * Set OraInizioCorso 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 $oraInizioCorso
     * @return DatiCorso
     */
    public function setOraInizioCorso($oraInizioCorso = null)
    {
        // validation for constraint: string
        if (!is_null($oraInizioCorso) && !is_string($oraInizioCorso)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($oraInizioCorso, true), gettype($oraInizioCorso)), __LINE__);
        }
        if (is_null($oraInizioCorso) || (is_array($oraInizioCorso) && empty($oraInizioCorso))) {
            unset($this->OraInizioCorso);
        } else {
            $this->OraInizioCorso = $oraInizioCorso;
        }
        return $this;
    }
    /**
     * Get Riga value
     * @return int|null
     */
    public function getRiga()
    {
        return $this->Riga;
    }
    /**
     * Set Riga value
     * @param int $riga
     * @return DatiCorso
     */
    public function setRiga($riga = null)
    {
        // validation for constraint: int
        if (!is_null($riga) && !(is_int($riga) || ctype_digit($riga))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($riga, true), gettype($riga)), __LINE__);
        }
        $this->Riga = $riga;
        return $this;
    }
    /**
     * Get Titolo 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 getTitolo()
    {
        return isset($this->Titolo) ? $this->Titolo : null;
    }
    /**
     * Set Titolo 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 $titolo
     * @return DatiCorso
     */
    public function setTitolo($titolo = null)
    {
        // validation for constraint: string
        if (!is_null($titolo) && !is_string($titolo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($titolo, true), gettype($titolo)), __LINE__);
        }
        if (is_null($titolo) || (is_array($titolo) && empty($titolo))) {
            unset($this->Titolo);
        } else {
            $this->Titolo = $titolo;
        }
        return $this;
    }
    /**
     * Get TitoloTestata 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 getTitoloTestata()
    {
        return isset($this->TitoloTestata) ? $this->TitoloTestata : null;
    }
    /**
     * Set TitoloTestata 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 $titoloTestata
     * @return DatiCorso
     */
    public function setTitoloTestata($titoloTestata = null)
    {
        // validation for constraint: string
        if (!is_null($titoloTestata) && !is_string($titoloTestata)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($titoloTestata, true), gettype($titoloTestata)), __LINE__);
        }
        if (is_null($titoloTestata) || (is_array($titoloTestata) && empty($titoloTestata))) {
            unset($this->TitoloTestata);
        } else {
            $this->TitoloTestata = $titoloTestata;
        }
        return $this;
    }
    /**
     * Get VisibilitaCorso value
     * @return int|null
     */
    public function getVisibilitaCorso()
    {
        return $this->VisibilitaCorso;
    }
    /**
     * Set VisibilitaCorso value
     * @param int $visibilitaCorso
     * @return DatiCorso
     */
    public function setVisibilitaCorso($visibilitaCorso = null)
    {
        // validation for constraint: int
        if (!is_null($visibilitaCorso) && !(is_int($visibilitaCorso) || ctype_digit($visibilitaCorso))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($visibilitaCorso, true), gettype($visibilitaCorso)), __LINE__);
        }
        $this->VisibilitaCorso = $visibilitaCorso;
        return $this;
    }
}
