<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for EstabelecimentosERP StructType
 * Meta informations extracted from the WSDL
 * - nillable: true
 * - type: tns:EstabelecimentosERP
 * @subpackage Structs
 */
class EstabelecimentosERP extends AbstractStructBase
{
    /**
     * The ActividadeSaude
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ActividadeSaude;
    /**
     * The ActividadeSegHigiene
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ActividadeSegHigiene;
    /**
     * The CAE
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CAE;
    /**
     * The CDU_ExtensaoFoto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_ExtensaoFoto;
    /**
     * The CDU_Foto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_Foto;
    /**
     * The CDU_MargemLucro
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $CDU_MargemLucro;
    /**
     * The CDU_NomeFoto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_NomeFoto;
    /**
     * The CDU_Pais
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_Pais;
    /**
     * The CDU_Parceiro
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_Parceiro;
    /**
     * The CDU_Telemovel
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_Telemovel;
    /**
     * The CalendarioTrabalho
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CalendarioTrabalho;
    /**
     * The CargoContactoSS
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CargoContactoSS;
    /**
     * The CodCAE
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodCAE;
    /**
     * The CodConcelho
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodConcelho;
    /**
     * The CodDistrito
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodDistrito;
    /**
     * The CodEstabSS
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodEstabSS;
    /**
     * The CodFreguesia
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodFreguesia;
    /**
     * The CodIRC
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodIRC;
    /**
     * The CodPostal1
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodPostal1;
    /**
     * The CodPostal2
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodPostal2;
    /**
     * The CodigoCGA
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodigoCGA;
    /**
     * The CodigoQP
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodigoQP;
    /**
     * The Concelho
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Concelho;
    /**
     * The ContaBancaria
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ContaBancaria;
    /**
     * The Contribuinte
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Contribuinte;
    /**
     * The Diploma
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $Diploma;
    /**
     * The Distrito
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Distrito;
    /**
     * The Email
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Email;
    /**
     * The EmailContactoSHST
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $EmailContactoSHST;
    /**
     * The Epigrafe
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Epigrafe;
    /**
     * The EpigrafeIT
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $EpigrafeIT;
    /**
     * The EpigrafeMutua
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $EpigrafeMutua;
    /**
     * The Estabelecimento
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Estabelecimento;
    /**
     * The Fax
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Fax;
    /**
     * The FaxContactoSHST
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $FaxContactoSHST;
    /**
     * The FeriasFeriados
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $FeriasFeriados;
    /**
     * The Freguesia
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Freguesia;
    /**
     * The IDEstabelecimento
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $IDEstabelecimento;
    /**
     * The IndFax
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $IndFax;
    /**
     * The IndTelefone
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $IndTelefone;
    /**
     * The Localidade
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Localidade;
    /**
     * The Morada
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Morada;
    /**
     * The NIFContactoSS
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NIFContactoSS;
    /**
     * The Nome
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Nome;
    /**
     * The NomeContactoSHST
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NomeContactoSHST;
    /**
     * The NomeContactoSS
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NomeContactoSS;
    /**
     * The NomeMutua
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NomeMutua;
    /**
     * The NumCGA
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NumCGA;
    /**
     * The NumEmpregados
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $NumEmpregados;
    /**
     * The NumSegSocial
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NumSegSocial;
    /**
     * The OrganizServicosSHST
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $OrganizServicosSHST;
    /**
     * The PrimeiroApelido
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $PrimeiroApelido;
    /**
     * The PrimeiroNome
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $PrimeiroNome;
    /**
     * The Protegida
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $Protegida;
    /**
     * The RepFinancas
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $RepFinancas;
    /**
     * The SaudeEntidade
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SaudeEntidade;
    /**
     * The SaudeTipoEntidade
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SaudeTipoEntidade;
    /**
     * The Sede
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $Sede;
    /**
     * The SegHigieneEntidade
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SegHigieneEntidade;
    /**
     * The SegHigieneTipoEntidade
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SegHigieneTipoEntidade;
    /**
     * The SegSocial
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SegSocial;
    /**
     * The SegundoApelido
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SegundoApelido;
    /**
     * The Telefone
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Telefone;
    /**
     * The TelefoneAltContactoSHST
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TelefoneAltContactoSHST;
    /**
     * The TelefonePrincContactoSHST
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TelefonePrincContactoSHST;
    /**
     * The TelfContactoSS
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TelfContactoSS;
    /**
     * Constructor method for EstabelecimentosERP
     * @uses EstabelecimentosERP::setActividadeSaude()
     * @uses EstabelecimentosERP::setActividadeSegHigiene()
     * @uses EstabelecimentosERP::setCAE()
     * @uses EstabelecimentosERP::setCDU_ExtensaoFoto()
     * @uses EstabelecimentosERP::setCDU_Foto()
     * @uses EstabelecimentosERP::setCDU_MargemLucro()
     * @uses EstabelecimentosERP::setCDU_NomeFoto()
     * @uses EstabelecimentosERP::setCDU_Pais()
     * @uses EstabelecimentosERP::setCDU_Parceiro()
     * @uses EstabelecimentosERP::setCDU_Telemovel()
     * @uses EstabelecimentosERP::setCalendarioTrabalho()
     * @uses EstabelecimentosERP::setCargoContactoSS()
     * @uses EstabelecimentosERP::setCodCAE()
     * @uses EstabelecimentosERP::setCodConcelho()
     * @uses EstabelecimentosERP::setCodDistrito()
     * @uses EstabelecimentosERP::setCodEstabSS()
     * @uses EstabelecimentosERP::setCodFreguesia()
     * @uses EstabelecimentosERP::setCodIRC()
     * @uses EstabelecimentosERP::setCodPostal1()
     * @uses EstabelecimentosERP::setCodPostal2()
     * @uses EstabelecimentosERP::setCodigoCGA()
     * @uses EstabelecimentosERP::setCodigoQP()
     * @uses EstabelecimentosERP::setConcelho()
     * @uses EstabelecimentosERP::setContaBancaria()
     * @uses EstabelecimentosERP::setContribuinte()
     * @uses EstabelecimentosERP::setDiploma()
     * @uses EstabelecimentosERP::setDistrito()
     * @uses EstabelecimentosERP::setEmail()
     * @uses EstabelecimentosERP::setEmailContactoSHST()
     * @uses EstabelecimentosERP::setEpigrafe()
     * @uses EstabelecimentosERP::setEpigrafeIT()
     * @uses EstabelecimentosERP::setEpigrafeMutua()
     * @uses EstabelecimentosERP::setEstabelecimento()
     * @uses EstabelecimentosERP::setFax()
     * @uses EstabelecimentosERP::setFaxContactoSHST()
     * @uses EstabelecimentosERP::setFeriasFeriados()
     * @uses EstabelecimentosERP::setFreguesia()
     * @uses EstabelecimentosERP::setIDEstabelecimento()
     * @uses EstabelecimentosERP::setIndFax()
     * @uses EstabelecimentosERP::setIndTelefone()
     * @uses EstabelecimentosERP::setLocalidade()
     * @uses EstabelecimentosERP::setMorada()
     * @uses EstabelecimentosERP::setNIFContactoSS()
     * @uses EstabelecimentosERP::setNome()
     * @uses EstabelecimentosERP::setNomeContactoSHST()
     * @uses EstabelecimentosERP::setNomeContactoSS()
     * @uses EstabelecimentosERP::setNomeMutua()
     * @uses EstabelecimentosERP::setNumCGA()
     * @uses EstabelecimentosERP::setNumEmpregados()
     * @uses EstabelecimentosERP::setNumSegSocial()
     * @uses EstabelecimentosERP::setOrganizServicosSHST()
     * @uses EstabelecimentosERP::setPrimeiroApelido()
     * @uses EstabelecimentosERP::setPrimeiroNome()
     * @uses EstabelecimentosERP::setProtegida()
     * @uses EstabelecimentosERP::setRepFinancas()
     * @uses EstabelecimentosERP::setSaudeEntidade()
     * @uses EstabelecimentosERP::setSaudeTipoEntidade()
     * @uses EstabelecimentosERP::setSede()
     * @uses EstabelecimentosERP::setSegHigieneEntidade()
     * @uses EstabelecimentosERP::setSegHigieneTipoEntidade()
     * @uses EstabelecimentosERP::setSegSocial()
     * @uses EstabelecimentosERP::setSegundoApelido()
     * @uses EstabelecimentosERP::setTelefone()
     * @uses EstabelecimentosERP::setTelefoneAltContactoSHST()
     * @uses EstabelecimentosERP::setTelefonePrincContactoSHST()
     * @uses EstabelecimentosERP::setTelfContactoSS()
     * @param string $actividadeSaude
     * @param string $actividadeSegHigiene
     * @param string $cAE
     * @param string $cDU_ExtensaoFoto
     * @param string $cDU_Foto
     * @param float $cDU_MargemLucro
     * @param string $cDU_NomeFoto
     * @param string $cDU_Pais
     * @param string $cDU_Parceiro
     * @param string $cDU_Telemovel
     * @param string $calendarioTrabalho
     * @param string $cargoContactoSS
     * @param string $codCAE
     * @param string $codConcelho
     * @param string $codDistrito
     * @param string $codEstabSS
     * @param string $codFreguesia
     * @param string $codIRC
     * @param string $codPostal1
     * @param string $codPostal2
     * @param string $codigoCGA
     * @param string $codigoQP
     * @param string $concelho
     * @param string $contaBancaria
     * @param string $contribuinte
     * @param int $diploma
     * @param string $distrito
     * @param string $email
     * @param string $emailContactoSHST
     * @param string $epigrafe
     * @param string $epigrafeIT
     * @param string $epigrafeMutua
     * @param string $estabelecimento
     * @param string $fax
     * @param string $faxContactoSHST
     * @param bool $feriasFeriados
     * @param string $freguesia
     * @param string $iDEstabelecimento
     * @param string $indFax
     * @param string $indTelefone
     * @param string $localidade
     * @param string $morada
     * @param string $nIFContactoSS
     * @param string $nome
     * @param string $nomeContactoSHST
     * @param string $nomeContactoSS
     * @param string $nomeMutua
     * @param string $numCGA
     * @param int $numEmpregados
     * @param string $numSegSocial
     * @param bool $organizServicosSHST
     * @param string $primeiroApelido
     * @param string $primeiroNome
     * @param bool $protegida
     * @param string $repFinancas
     * @param string $saudeEntidade
     * @param string $saudeTipoEntidade
     * @param bool $sede
     * @param string $segHigieneEntidade
     * @param string $segHigieneTipoEntidade
     * @param string $segSocial
     * @param string $segundoApelido
     * @param string $telefone
     * @param string $telefoneAltContactoSHST
     * @param string $telefonePrincContactoSHST
     * @param string $telfContactoSS
     */
    public function __construct($actividadeSaude = null, $actividadeSegHigiene = null, $cAE = null, $cDU_ExtensaoFoto = null, $cDU_Foto = null, $cDU_MargemLucro = null, $cDU_NomeFoto = null, $cDU_Pais = null, $cDU_Parceiro = null, $cDU_Telemovel = null, $calendarioTrabalho = null, $cargoContactoSS = null, $codCAE = null, $codConcelho = null, $codDistrito = null, $codEstabSS = null, $codFreguesia = null, $codIRC = null, $codPostal1 = null, $codPostal2 = null, $codigoCGA = null, $codigoQP = null, $concelho = null, $contaBancaria = null, $contribuinte = null, $diploma = null, $distrito = null, $email = null, $emailContactoSHST = null, $epigrafe = null, $epigrafeIT = null, $epigrafeMutua = null, $estabelecimento = null, $fax = null, $faxContactoSHST = null, $feriasFeriados = null, $freguesia = null, $iDEstabelecimento = null, $indFax = null, $indTelefone = null, $localidade = null, $morada = null, $nIFContactoSS = null, $nome = null, $nomeContactoSHST = null, $nomeContactoSS = null, $nomeMutua = null, $numCGA = null, $numEmpregados = null, $numSegSocial = null, $organizServicosSHST = null, $primeiroApelido = null, $primeiroNome = null, $protegida = null, $repFinancas = null, $saudeEntidade = null, $saudeTipoEntidade = null, $sede = null, $segHigieneEntidade = null, $segHigieneTipoEntidade = null, $segSocial = null, $segundoApelido = null, $telefone = null, $telefoneAltContactoSHST = null, $telefonePrincContactoSHST = null, $telfContactoSS = null)
    {
        $this
            ->setActividadeSaude($actividadeSaude)
            ->setActividadeSegHigiene($actividadeSegHigiene)
            ->setCAE($cAE)
            ->setCDU_ExtensaoFoto($cDU_ExtensaoFoto)
            ->setCDU_Foto($cDU_Foto)
            ->setCDU_MargemLucro($cDU_MargemLucro)
            ->setCDU_NomeFoto($cDU_NomeFoto)
            ->setCDU_Pais($cDU_Pais)
            ->setCDU_Parceiro($cDU_Parceiro)
            ->setCDU_Telemovel($cDU_Telemovel)
            ->setCalendarioTrabalho($calendarioTrabalho)
            ->setCargoContactoSS($cargoContactoSS)
            ->setCodCAE($codCAE)
            ->setCodConcelho($codConcelho)
            ->setCodDistrito($codDistrito)
            ->setCodEstabSS($codEstabSS)
            ->setCodFreguesia($codFreguesia)
            ->setCodIRC($codIRC)
            ->setCodPostal1($codPostal1)
            ->setCodPostal2($codPostal2)
            ->setCodigoCGA($codigoCGA)
            ->setCodigoQP($codigoQP)
            ->setConcelho($concelho)
            ->setContaBancaria($contaBancaria)
            ->setContribuinte($contribuinte)
            ->setDiploma($diploma)
            ->setDistrito($distrito)
            ->setEmail($email)
            ->setEmailContactoSHST($emailContactoSHST)
            ->setEpigrafe($epigrafe)
            ->setEpigrafeIT($epigrafeIT)
            ->setEpigrafeMutua($epigrafeMutua)
            ->setEstabelecimento($estabelecimento)
            ->setFax($fax)
            ->setFaxContactoSHST($faxContactoSHST)
            ->setFeriasFeriados($feriasFeriados)
            ->setFreguesia($freguesia)
            ->setIDEstabelecimento($iDEstabelecimento)
            ->setIndFax($indFax)
            ->setIndTelefone($indTelefone)
            ->setLocalidade($localidade)
            ->setMorada($morada)
            ->setNIFContactoSS($nIFContactoSS)
            ->setNome($nome)
            ->setNomeContactoSHST($nomeContactoSHST)
            ->setNomeContactoSS($nomeContactoSS)
            ->setNomeMutua($nomeMutua)
            ->setNumCGA($numCGA)
            ->setNumEmpregados($numEmpregados)
            ->setNumSegSocial($numSegSocial)
            ->setOrganizServicosSHST($organizServicosSHST)
            ->setPrimeiroApelido($primeiroApelido)
            ->setPrimeiroNome($primeiroNome)
            ->setProtegida($protegida)
            ->setRepFinancas($repFinancas)
            ->setSaudeEntidade($saudeEntidade)
            ->setSaudeTipoEntidade($saudeTipoEntidade)
            ->setSede($sede)
            ->setSegHigieneEntidade($segHigieneEntidade)
            ->setSegHigieneTipoEntidade($segHigieneTipoEntidade)
            ->setSegSocial($segSocial)
            ->setSegundoApelido($segundoApelido)
            ->setTelefone($telefone)
            ->setTelefoneAltContactoSHST($telefoneAltContactoSHST)
            ->setTelefonePrincContactoSHST($telefonePrincContactoSHST)
            ->setTelfContactoSS($telfContactoSS);
    }
    /**
     * Get ActividadeSaude value
     * @return string|null
     */
    public function getActividadeSaude()
    {
        return $this->ActividadeSaude;
    }
    /**
     * Set ActividadeSaude value
     * @param string $actividadeSaude
     * @return \StructType\EstabelecimentosERP
     */
    public function setActividadeSaude($actividadeSaude = null)
    {
        // validation for constraint: string
        if (!is_null($actividadeSaude) && !is_string($actividadeSaude)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($actividadeSaude)), __LINE__);
        }
        $this->ActividadeSaude = $actividadeSaude;
        return $this;
    }
    /**
     * Get ActividadeSegHigiene value
     * @return string|null
     */
    public function getActividadeSegHigiene()
    {
        return $this->ActividadeSegHigiene;
    }
    /**
     * Set ActividadeSegHigiene value
     * @param string $actividadeSegHigiene
     * @return \StructType\EstabelecimentosERP
     */
    public function setActividadeSegHigiene($actividadeSegHigiene = null)
    {
        // validation for constraint: string
        if (!is_null($actividadeSegHigiene) && !is_string($actividadeSegHigiene)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($actividadeSegHigiene)), __LINE__);
        }
        $this->ActividadeSegHigiene = $actividadeSegHigiene;
        return $this;
    }
    /**
     * Get CAE 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 getCAE()
    {
        return isset($this->CAE) ? $this->CAE : null;
    }
    /**
     * Set CAE 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 $cAE
     * @return \StructType\EstabelecimentosERP
     */
    public function setCAE($cAE = null)
    {
        // validation for constraint: string
        if (!is_null($cAE) && !is_string($cAE)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cAE)), __LINE__);
        }
        if (is_null($cAE) || (is_array($cAE) && empty($cAE))) {
            unset($this->CAE);
        } else {
            $this->CAE = $cAE;
        }
        return $this;
    }
    /**
     * Get CDU_ExtensaoFoto 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 getCDU_ExtensaoFoto()
    {
        return isset($this->CDU_ExtensaoFoto) ? $this->CDU_ExtensaoFoto : null;
    }
    /**
     * Set CDU_ExtensaoFoto 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 $cDU_ExtensaoFoto
     * @return \StructType\EstabelecimentosERP
     */
    public function setCDU_ExtensaoFoto($cDU_ExtensaoFoto = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_ExtensaoFoto) && !is_string($cDU_ExtensaoFoto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_ExtensaoFoto)), __LINE__);
        }
        if (is_null($cDU_ExtensaoFoto) || (is_array($cDU_ExtensaoFoto) && empty($cDU_ExtensaoFoto))) {
            unset($this->CDU_ExtensaoFoto);
        } else {
            $this->CDU_ExtensaoFoto = $cDU_ExtensaoFoto;
        }
        return $this;
    }
    /**
     * Get CDU_Foto 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 getCDU_Foto()
    {
        return isset($this->CDU_Foto) ? $this->CDU_Foto : null;
    }
    /**
     * Set CDU_Foto 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 $cDU_Foto
     * @return \StructType\EstabelecimentosERP
     */
    public function setCDU_Foto($cDU_Foto = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_Foto) && !is_string($cDU_Foto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_Foto)), __LINE__);
        }
        if (is_null($cDU_Foto) || (is_array($cDU_Foto) && empty($cDU_Foto))) {
            unset($this->CDU_Foto);
        } else {
            $this->CDU_Foto = $cDU_Foto;
        }
        return $this;
    }
    /**
     * Get CDU_MargemLucro 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 float|null
     */
    public function getCDU_MargemLucro()
    {
        return isset($this->CDU_MargemLucro) ? $this->CDU_MargemLucro : null;
    }
    /**
     * Set CDU_MargemLucro 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 float $cDU_MargemLucro
     * @return \StructType\EstabelecimentosERP
     */
    public function setCDU_MargemLucro($cDU_MargemLucro = null)
    {
        if (is_null($cDU_MargemLucro) || (is_array($cDU_MargemLucro) && empty($cDU_MargemLucro))) {
            unset($this->CDU_MargemLucro);
        } else {
            $this->CDU_MargemLucro = $cDU_MargemLucro;
        }
        return $this;
    }
    /**
     * Get CDU_NomeFoto 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 getCDU_NomeFoto()
    {
        return isset($this->CDU_NomeFoto) ? $this->CDU_NomeFoto : null;
    }
    /**
     * Set CDU_NomeFoto 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 $cDU_NomeFoto
     * @return \StructType\EstabelecimentosERP
     */
    public function setCDU_NomeFoto($cDU_NomeFoto = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_NomeFoto) && !is_string($cDU_NomeFoto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_NomeFoto)), __LINE__);
        }
        if (is_null($cDU_NomeFoto) || (is_array($cDU_NomeFoto) && empty($cDU_NomeFoto))) {
            unset($this->CDU_NomeFoto);
        } else {
            $this->CDU_NomeFoto = $cDU_NomeFoto;
        }
        return $this;
    }
    /**
     * Get CDU_Pais 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 getCDU_Pais()
    {
        return isset($this->CDU_Pais) ? $this->CDU_Pais : null;
    }
    /**
     * Set CDU_Pais 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 $cDU_Pais
     * @return \StructType\EstabelecimentosERP
     */
    public function setCDU_Pais($cDU_Pais = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_Pais) && !is_string($cDU_Pais)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_Pais)), __LINE__);
        }
        if (is_null($cDU_Pais) || (is_array($cDU_Pais) && empty($cDU_Pais))) {
            unset($this->CDU_Pais);
        } else {
            $this->CDU_Pais = $cDU_Pais;
        }
        return $this;
    }
    /**
     * Get CDU_Parceiro 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 getCDU_Parceiro()
    {
        return isset($this->CDU_Parceiro) ? $this->CDU_Parceiro : null;
    }
    /**
     * Set CDU_Parceiro 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 $cDU_Parceiro
     * @return \StructType\EstabelecimentosERP
     */
    public function setCDU_Parceiro($cDU_Parceiro = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_Parceiro) && !is_string($cDU_Parceiro)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_Parceiro)), __LINE__);
        }
        if (is_null($cDU_Parceiro) || (is_array($cDU_Parceiro) && empty($cDU_Parceiro))) {
            unset($this->CDU_Parceiro);
        } else {
            $this->CDU_Parceiro = $cDU_Parceiro;
        }
        return $this;
    }
    /**
     * Get CDU_Telemovel 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 getCDU_Telemovel()
    {
        return isset($this->CDU_Telemovel) ? $this->CDU_Telemovel : null;
    }
    /**
     * Set CDU_Telemovel 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 $cDU_Telemovel
     * @return \StructType\EstabelecimentosERP
     */
    public function setCDU_Telemovel($cDU_Telemovel = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_Telemovel) && !is_string($cDU_Telemovel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_Telemovel)), __LINE__);
        }
        if (is_null($cDU_Telemovel) || (is_array($cDU_Telemovel) && empty($cDU_Telemovel))) {
            unset($this->CDU_Telemovel);
        } else {
            $this->CDU_Telemovel = $cDU_Telemovel;
        }
        return $this;
    }
    /**
     * Get CalendarioTrabalho 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 getCalendarioTrabalho()
    {
        return isset($this->CalendarioTrabalho) ? $this->CalendarioTrabalho : null;
    }
    /**
     * Set CalendarioTrabalho 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 $calendarioTrabalho
     * @return \StructType\EstabelecimentosERP
     */
    public function setCalendarioTrabalho($calendarioTrabalho = null)
    {
        // validation for constraint: string
        if (!is_null($calendarioTrabalho) && !is_string($calendarioTrabalho)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($calendarioTrabalho)), __LINE__);
        }
        if (is_null($calendarioTrabalho) || (is_array($calendarioTrabalho) && empty($calendarioTrabalho))) {
            unset($this->CalendarioTrabalho);
        } else {
            $this->CalendarioTrabalho = $calendarioTrabalho;
        }
        return $this;
    }
    /**
     * Get CargoContactoSS 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 getCargoContactoSS()
    {
        return isset($this->CargoContactoSS) ? $this->CargoContactoSS : null;
    }
    /**
     * Set CargoContactoSS 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 $cargoContactoSS
     * @return \StructType\EstabelecimentosERP
     */
    public function setCargoContactoSS($cargoContactoSS = null)
    {
        // validation for constraint: string
        if (!is_null($cargoContactoSS) && !is_string($cargoContactoSS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cargoContactoSS)), __LINE__);
        }
        if (is_null($cargoContactoSS) || (is_array($cargoContactoSS) && empty($cargoContactoSS))) {
            unset($this->CargoContactoSS);
        } else {
            $this->CargoContactoSS = $cargoContactoSS;
        }
        return $this;
    }
    /**
     * Get CodCAE 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 getCodCAE()
    {
        return isset($this->CodCAE) ? $this->CodCAE : null;
    }
    /**
     * Set CodCAE 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 $codCAE
     * @return \StructType\EstabelecimentosERP
     */
    public function setCodCAE($codCAE = null)
    {
        // validation for constraint: string
        if (!is_null($codCAE) && !is_string($codCAE)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codCAE)), __LINE__);
        }
        if (is_null($codCAE) || (is_array($codCAE) && empty($codCAE))) {
            unset($this->CodCAE);
        } else {
            $this->CodCAE = $codCAE;
        }
        return $this;
    }
    /**
     * Get CodConcelho 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 getCodConcelho()
    {
        return isset($this->CodConcelho) ? $this->CodConcelho : null;
    }
    /**
     * Set CodConcelho 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 $codConcelho
     * @return \StructType\EstabelecimentosERP
     */
    public function setCodConcelho($codConcelho = null)
    {
        // validation for constraint: string
        if (!is_null($codConcelho) && !is_string($codConcelho)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codConcelho)), __LINE__);
        }
        if (is_null($codConcelho) || (is_array($codConcelho) && empty($codConcelho))) {
            unset($this->CodConcelho);
        } else {
            $this->CodConcelho = $codConcelho;
        }
        return $this;
    }
    /**
     * Get CodDistrito 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 getCodDistrito()
    {
        return isset($this->CodDistrito) ? $this->CodDistrito : null;
    }
    /**
     * Set CodDistrito 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 $codDistrito
     * @return \StructType\EstabelecimentosERP
     */
    public function setCodDistrito($codDistrito = null)
    {
        // validation for constraint: string
        if (!is_null($codDistrito) && !is_string($codDistrito)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codDistrito)), __LINE__);
        }
        if (is_null($codDistrito) || (is_array($codDistrito) && empty($codDistrito))) {
            unset($this->CodDistrito);
        } else {
            $this->CodDistrito = $codDistrito;
        }
        return $this;
    }
    /**
     * Get CodEstabSS 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 getCodEstabSS()
    {
        return isset($this->CodEstabSS) ? $this->CodEstabSS : null;
    }
    /**
     * Set CodEstabSS 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 $codEstabSS
     * @return \StructType\EstabelecimentosERP
     */
    public function setCodEstabSS($codEstabSS = null)
    {
        // validation for constraint: string
        if (!is_null($codEstabSS) && !is_string($codEstabSS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codEstabSS)), __LINE__);
        }
        if (is_null($codEstabSS) || (is_array($codEstabSS) && empty($codEstabSS))) {
            unset($this->CodEstabSS);
        } else {
            $this->CodEstabSS = $codEstabSS;
        }
        return $this;
    }
    /**
     * Get CodFreguesia 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 getCodFreguesia()
    {
        return isset($this->CodFreguesia) ? $this->CodFreguesia : null;
    }
    /**
     * Set CodFreguesia 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 $codFreguesia
     * @return \StructType\EstabelecimentosERP
     */
    public function setCodFreguesia($codFreguesia = null)
    {
        // validation for constraint: string
        if (!is_null($codFreguesia) && !is_string($codFreguesia)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codFreguesia)), __LINE__);
        }
        if (is_null($codFreguesia) || (is_array($codFreguesia) && empty($codFreguesia))) {
            unset($this->CodFreguesia);
        } else {
            $this->CodFreguesia = $codFreguesia;
        }
        return $this;
    }
    /**
     * Get CodIRC 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 getCodIRC()
    {
        return isset($this->CodIRC) ? $this->CodIRC : null;
    }
    /**
     * Set CodIRC 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 $codIRC
     * @return \StructType\EstabelecimentosERP
     */
    public function setCodIRC($codIRC = null)
    {
        // validation for constraint: string
        if (!is_null($codIRC) && !is_string($codIRC)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codIRC)), __LINE__);
        }
        if (is_null($codIRC) || (is_array($codIRC) && empty($codIRC))) {
            unset($this->CodIRC);
        } else {
            $this->CodIRC = $codIRC;
        }
        return $this;
    }
    /**
     * Get CodPostal1 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 getCodPostal1()
    {
        return isset($this->CodPostal1) ? $this->CodPostal1 : null;
    }
    /**
     * Set CodPostal1 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 $codPostal1
     * @return \StructType\EstabelecimentosERP
     */
    public function setCodPostal1($codPostal1 = null)
    {
        // validation for constraint: string
        if (!is_null($codPostal1) && !is_string($codPostal1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codPostal1)), __LINE__);
        }
        if (is_null($codPostal1) || (is_array($codPostal1) && empty($codPostal1))) {
            unset($this->CodPostal1);
        } else {
            $this->CodPostal1 = $codPostal1;
        }
        return $this;
    }
    /**
     * Get CodPostal2 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 getCodPostal2()
    {
        return isset($this->CodPostal2) ? $this->CodPostal2 : null;
    }
    /**
     * Set CodPostal2 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 $codPostal2
     * @return \StructType\EstabelecimentosERP
     */
    public function setCodPostal2($codPostal2 = null)
    {
        // validation for constraint: string
        if (!is_null($codPostal2) && !is_string($codPostal2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codPostal2)), __LINE__);
        }
        if (is_null($codPostal2) || (is_array($codPostal2) && empty($codPostal2))) {
            unset($this->CodPostal2);
        } else {
            $this->CodPostal2 = $codPostal2;
        }
        return $this;
    }
    /**
     * Get CodigoCGA 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 getCodigoCGA()
    {
        return isset($this->CodigoCGA) ? $this->CodigoCGA : null;
    }
    /**
     * Set CodigoCGA 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 $codigoCGA
     * @return \StructType\EstabelecimentosERP
     */
    public function setCodigoCGA($codigoCGA = null)
    {
        // validation for constraint: string
        if (!is_null($codigoCGA) && !is_string($codigoCGA)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codigoCGA)), __LINE__);
        }
        if (is_null($codigoCGA) || (is_array($codigoCGA) && empty($codigoCGA))) {
            unset($this->CodigoCGA);
        } else {
            $this->CodigoCGA = $codigoCGA;
        }
        return $this;
    }
    /**
     * Get CodigoQP 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 getCodigoQP()
    {
        return isset($this->CodigoQP) ? $this->CodigoQP : null;
    }
    /**
     * Set CodigoQP 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 $codigoQP
     * @return \StructType\EstabelecimentosERP
     */
    public function setCodigoQP($codigoQP = null)
    {
        // validation for constraint: string
        if (!is_null($codigoQP) && !is_string($codigoQP)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codigoQP)), __LINE__);
        }
        if (is_null($codigoQP) || (is_array($codigoQP) && empty($codigoQP))) {
            unset($this->CodigoQP);
        } else {
            $this->CodigoQP = $codigoQP;
        }
        return $this;
    }
    /**
     * Get Concelho 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 getConcelho()
    {
        return isset($this->Concelho) ? $this->Concelho : null;
    }
    /**
     * Set Concelho 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 $concelho
     * @return \StructType\EstabelecimentosERP
     */
    public function setConcelho($concelho = null)
    {
        // validation for constraint: string
        if (!is_null($concelho) && !is_string($concelho)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($concelho)), __LINE__);
        }
        if (is_null($concelho) || (is_array($concelho) && empty($concelho))) {
            unset($this->Concelho);
        } else {
            $this->Concelho = $concelho;
        }
        return $this;
    }
    /**
     * Get ContaBancaria 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 getContaBancaria()
    {
        return isset($this->ContaBancaria) ? $this->ContaBancaria : null;
    }
    /**
     * Set ContaBancaria 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 $contaBancaria
     * @return \StructType\EstabelecimentosERP
     */
    public function setContaBancaria($contaBancaria = null)
    {
        // validation for constraint: string
        if (!is_null($contaBancaria) && !is_string($contaBancaria)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($contaBancaria)), __LINE__);
        }
        if (is_null($contaBancaria) || (is_array($contaBancaria) && empty($contaBancaria))) {
            unset($this->ContaBancaria);
        } else {
            $this->ContaBancaria = $contaBancaria;
        }
        return $this;
    }
    /**
     * Get Contribuinte 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 getContribuinte()
    {
        return isset($this->Contribuinte) ? $this->Contribuinte : null;
    }
    /**
     * Set Contribuinte 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 $contribuinte
     * @return \StructType\EstabelecimentosERP
     */
    public function setContribuinte($contribuinte = null)
    {
        // validation for constraint: string
        if (!is_null($contribuinte) && !is_string($contribuinte)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($contribuinte)), __LINE__);
        }
        if (is_null($contribuinte) || (is_array($contribuinte) && empty($contribuinte))) {
            unset($this->Contribuinte);
        } else {
            $this->Contribuinte = $contribuinte;
        }
        return $this;
    }
    /**
     * Get Diploma 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 int|null
     */
    public function getDiploma()
    {
        return isset($this->Diploma) ? $this->Diploma : null;
    }
    /**
     * Set Diploma 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 int $diploma
     * @return \StructType\EstabelecimentosERP
     */
    public function setDiploma($diploma = null)
    {
        // validation for constraint: int
        if (!is_null($diploma) && !is_numeric($diploma)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($diploma)), __LINE__);
        }
        if (is_null($diploma) || (is_array($diploma) && empty($diploma))) {
            unset($this->Diploma);
        } else {
            $this->Diploma = $diploma;
        }
        return $this;
    }
    /**
     * Get Distrito 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 getDistrito()
    {
        return isset($this->Distrito) ? $this->Distrito : null;
    }
    /**
     * Set Distrito 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 $distrito
     * @return \StructType\EstabelecimentosERP
     */
    public function setDistrito($distrito = null)
    {
        // validation for constraint: string
        if (!is_null($distrito) && !is_string($distrito)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($distrito)), __LINE__);
        }
        if (is_null($distrito) || (is_array($distrito) && empty($distrito))) {
            unset($this->Distrito);
        } else {
            $this->Distrito = $distrito;
        }
        return $this;
    }
    /**
     * Get Email 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 getEmail()
    {
        return isset($this->Email) ? $this->Email : null;
    }
    /**
     * Set Email 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 $email
     * @return \StructType\EstabelecimentosERP
     */
    public function setEmail($email = null)
    {
        // validation for constraint: string
        if (!is_null($email) && !is_string($email)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($email)), __LINE__);
        }
        if (is_null($email) || (is_array($email) && empty($email))) {
            unset($this->Email);
        } else {
            $this->Email = $email;
        }
        return $this;
    }
    /**
     * Get EmailContactoSHST 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 getEmailContactoSHST()
    {
        return isset($this->EmailContactoSHST) ? $this->EmailContactoSHST : null;
    }
    /**
     * Set EmailContactoSHST 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 $emailContactoSHST
     * @return \StructType\EstabelecimentosERP
     */
    public function setEmailContactoSHST($emailContactoSHST = null)
    {
        // validation for constraint: string
        if (!is_null($emailContactoSHST) && !is_string($emailContactoSHST)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($emailContactoSHST)), __LINE__);
        }
        if (is_null($emailContactoSHST) || (is_array($emailContactoSHST) && empty($emailContactoSHST))) {
            unset($this->EmailContactoSHST);
        } else {
            $this->EmailContactoSHST = $emailContactoSHST;
        }
        return $this;
    }
    /**
     * Get Epigrafe 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 getEpigrafe()
    {
        return isset($this->Epigrafe) ? $this->Epigrafe : null;
    }
    /**
     * Set Epigrafe 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 $epigrafe
     * @return \StructType\EstabelecimentosERP
     */
    public function setEpigrafe($epigrafe = null)
    {
        // validation for constraint: string
        if (!is_null($epigrafe) && !is_string($epigrafe)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($epigrafe)), __LINE__);
        }
        if (is_null($epigrafe) || (is_array($epigrafe) && empty($epigrafe))) {
            unset($this->Epigrafe);
        } else {
            $this->Epigrafe = $epigrafe;
        }
        return $this;
    }
    /**
     * Get EpigrafeIT 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 getEpigrafeIT()
    {
        return isset($this->EpigrafeIT) ? $this->EpigrafeIT : null;
    }
    /**
     * Set EpigrafeIT 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 $epigrafeIT
     * @return \StructType\EstabelecimentosERP
     */
    public function setEpigrafeIT($epigrafeIT = null)
    {
        // validation for constraint: string
        if (!is_null($epigrafeIT) && !is_string($epigrafeIT)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($epigrafeIT)), __LINE__);
        }
        if (is_null($epigrafeIT) || (is_array($epigrafeIT) && empty($epigrafeIT))) {
            unset($this->EpigrafeIT);
        } else {
            $this->EpigrafeIT = $epigrafeIT;
        }
        return $this;
    }
    /**
     * Get EpigrafeMutua 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 getEpigrafeMutua()
    {
        return isset($this->EpigrafeMutua) ? $this->EpigrafeMutua : null;
    }
    /**
     * Set EpigrafeMutua 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 $epigrafeMutua
     * @return \StructType\EstabelecimentosERP
     */
    public function setEpigrafeMutua($epigrafeMutua = null)
    {
        // validation for constraint: string
        if (!is_null($epigrafeMutua) && !is_string($epigrafeMutua)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($epigrafeMutua)), __LINE__);
        }
        if (is_null($epigrafeMutua) || (is_array($epigrafeMutua) && empty($epigrafeMutua))) {
            unset($this->EpigrafeMutua);
        } else {
            $this->EpigrafeMutua = $epigrafeMutua;
        }
        return $this;
    }
    /**
     * Get Estabelecimento 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 getEstabelecimento()
    {
        return isset($this->Estabelecimento) ? $this->Estabelecimento : null;
    }
    /**
     * Set Estabelecimento 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 $estabelecimento
     * @return \StructType\EstabelecimentosERP
     */
    public function setEstabelecimento($estabelecimento = null)
    {
        // validation for constraint: string
        if (!is_null($estabelecimento) && !is_string($estabelecimento)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($estabelecimento)), __LINE__);
        }
        if (is_null($estabelecimento) || (is_array($estabelecimento) && empty($estabelecimento))) {
            unset($this->Estabelecimento);
        } else {
            $this->Estabelecimento = $estabelecimento;
        }
        return $this;
    }
    /**
     * Get Fax 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 getFax()
    {
        return isset($this->Fax) ? $this->Fax : null;
    }
    /**
     * Set Fax 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 $fax
     * @return \StructType\EstabelecimentosERP
     */
    public function setFax($fax = null)
    {
        // validation for constraint: string
        if (!is_null($fax) && !is_string($fax)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($fax)), __LINE__);
        }
        if (is_null($fax) || (is_array($fax) && empty($fax))) {
            unset($this->Fax);
        } else {
            $this->Fax = $fax;
        }
        return $this;
    }
    /**
     * Get FaxContactoSHST 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 getFaxContactoSHST()
    {
        return isset($this->FaxContactoSHST) ? $this->FaxContactoSHST : null;
    }
    /**
     * Set FaxContactoSHST 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 $faxContactoSHST
     * @return \StructType\EstabelecimentosERP
     */
    public function setFaxContactoSHST($faxContactoSHST = null)
    {
        // validation for constraint: string
        if (!is_null($faxContactoSHST) && !is_string($faxContactoSHST)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($faxContactoSHST)), __LINE__);
        }
        if (is_null($faxContactoSHST) || (is_array($faxContactoSHST) && empty($faxContactoSHST))) {
            unset($this->FaxContactoSHST);
        } else {
            $this->FaxContactoSHST = $faxContactoSHST;
        }
        return $this;
    }
    /**
     * Get FeriasFeriados value
     * @return bool|null
     */
    public function getFeriasFeriados()
    {
        return $this->FeriasFeriados;
    }
    /**
     * Set FeriasFeriados value
     * @param bool $feriasFeriados
     * @return \StructType\EstabelecimentosERP
     */
    public function setFeriasFeriados($feriasFeriados = null)
    {
        // validation for constraint: boolean
        if (!is_null($feriasFeriados) && !is_bool($feriasFeriados)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($feriasFeriados)), __LINE__);
        }
        $this->FeriasFeriados = $feriasFeriados;
        return $this;
    }
    /**
     * Get Freguesia 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 getFreguesia()
    {
        return isset($this->Freguesia) ? $this->Freguesia : null;
    }
    /**
     * Set Freguesia 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 $freguesia
     * @return \StructType\EstabelecimentosERP
     */
    public function setFreguesia($freguesia = null)
    {
        // validation for constraint: string
        if (!is_null($freguesia) && !is_string($freguesia)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($freguesia)), __LINE__);
        }
        if (is_null($freguesia) || (is_array($freguesia) && empty($freguesia))) {
            unset($this->Freguesia);
        } else {
            $this->Freguesia = $freguesia;
        }
        return $this;
    }
    /**
     * Get IDEstabelecimento 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 getIDEstabelecimento()
    {
        return isset($this->IDEstabelecimento) ? $this->IDEstabelecimento : null;
    }
    /**
     * Set IDEstabelecimento 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 $iDEstabelecimento
     * @return \StructType\EstabelecimentosERP
     */
    public function setIDEstabelecimento($iDEstabelecimento = null)
    {
        // validation for constraint: string
        if (!is_null($iDEstabelecimento) && !is_string($iDEstabelecimento)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($iDEstabelecimento)), __LINE__);
        }
        if (is_null($iDEstabelecimento) || (is_array($iDEstabelecimento) && empty($iDEstabelecimento))) {
            unset($this->IDEstabelecimento);
        } else {
            $this->IDEstabelecimento = $iDEstabelecimento;
        }
        return $this;
    }
    /**
     * Get IndFax 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 getIndFax()
    {
        return isset($this->IndFax) ? $this->IndFax : null;
    }
    /**
     * Set IndFax 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 $indFax
     * @return \StructType\EstabelecimentosERP
     */
    public function setIndFax($indFax = null)
    {
        // validation for constraint: string
        if (!is_null($indFax) && !is_string($indFax)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($indFax)), __LINE__);
        }
        if (is_null($indFax) || (is_array($indFax) && empty($indFax))) {
            unset($this->IndFax);
        } else {
            $this->IndFax = $indFax;
        }
        return $this;
    }
    /**
     * Get IndTelefone 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 getIndTelefone()
    {
        return isset($this->IndTelefone) ? $this->IndTelefone : null;
    }
    /**
     * Set IndTelefone 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 $indTelefone
     * @return \StructType\EstabelecimentosERP
     */
    public function setIndTelefone($indTelefone = null)
    {
        // validation for constraint: string
        if (!is_null($indTelefone) && !is_string($indTelefone)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($indTelefone)), __LINE__);
        }
        if (is_null($indTelefone) || (is_array($indTelefone) && empty($indTelefone))) {
            unset($this->IndTelefone);
        } else {
            $this->IndTelefone = $indTelefone;
        }
        return $this;
    }
    /**
     * Get Localidade 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 getLocalidade()
    {
        return isset($this->Localidade) ? $this->Localidade : null;
    }
    /**
     * Set Localidade 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 $localidade
     * @return \StructType\EstabelecimentosERP
     */
    public function setLocalidade($localidade = null)
    {
        // validation for constraint: string
        if (!is_null($localidade) && !is_string($localidade)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($localidade)), __LINE__);
        }
        if (is_null($localidade) || (is_array($localidade) && empty($localidade))) {
            unset($this->Localidade);
        } else {
            $this->Localidade = $localidade;
        }
        return $this;
    }
    /**
     * Get Morada 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 getMorada()
    {
        return isset($this->Morada) ? $this->Morada : null;
    }
    /**
     * Set Morada 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 $morada
     * @return \StructType\EstabelecimentosERP
     */
    public function setMorada($morada = null)
    {
        // validation for constraint: string
        if (!is_null($morada) && !is_string($morada)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($morada)), __LINE__);
        }
        if (is_null($morada) || (is_array($morada) && empty($morada))) {
            unset($this->Morada);
        } else {
            $this->Morada = $morada;
        }
        return $this;
    }
    /**
     * Get NIFContactoSS 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 getNIFContactoSS()
    {
        return isset($this->NIFContactoSS) ? $this->NIFContactoSS : null;
    }
    /**
     * Set NIFContactoSS 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 $nIFContactoSS
     * @return \StructType\EstabelecimentosERP
     */
    public function setNIFContactoSS($nIFContactoSS = null)
    {
        // validation for constraint: string
        if (!is_null($nIFContactoSS) && !is_string($nIFContactoSS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($nIFContactoSS)), __LINE__);
        }
        if (is_null($nIFContactoSS) || (is_array($nIFContactoSS) && empty($nIFContactoSS))) {
            unset($this->NIFContactoSS);
        } else {
            $this->NIFContactoSS = $nIFContactoSS;
        }
        return $this;
    }
    /**
     * Get Nome 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 getNome()
    {
        return isset($this->Nome) ? $this->Nome : null;
    }
    /**
     * Set Nome 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 $nome
     * @return \StructType\EstabelecimentosERP
     */
    public function setNome($nome = null)
    {
        // validation for constraint: string
        if (!is_null($nome) && !is_string($nome)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($nome)), __LINE__);
        }
        if (is_null($nome) || (is_array($nome) && empty($nome))) {
            unset($this->Nome);
        } else {
            $this->Nome = $nome;
        }
        return $this;
    }
    /**
     * Get NomeContactoSHST 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 getNomeContactoSHST()
    {
        return isset($this->NomeContactoSHST) ? $this->NomeContactoSHST : null;
    }
    /**
     * Set NomeContactoSHST 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 $nomeContactoSHST
     * @return \StructType\EstabelecimentosERP
     */
    public function setNomeContactoSHST($nomeContactoSHST = null)
    {
        // validation for constraint: string
        if (!is_null($nomeContactoSHST) && !is_string($nomeContactoSHST)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($nomeContactoSHST)), __LINE__);
        }
        if (is_null($nomeContactoSHST) || (is_array($nomeContactoSHST) && empty($nomeContactoSHST))) {
            unset($this->NomeContactoSHST);
        } else {
            $this->NomeContactoSHST = $nomeContactoSHST;
        }
        return $this;
    }
    /**
     * Get NomeContactoSS 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 getNomeContactoSS()
    {
        return isset($this->NomeContactoSS) ? $this->NomeContactoSS : null;
    }
    /**
     * Set NomeContactoSS 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 $nomeContactoSS
     * @return \StructType\EstabelecimentosERP
     */
    public function setNomeContactoSS($nomeContactoSS = null)
    {
        // validation for constraint: string
        if (!is_null($nomeContactoSS) && !is_string($nomeContactoSS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($nomeContactoSS)), __LINE__);
        }
        if (is_null($nomeContactoSS) || (is_array($nomeContactoSS) && empty($nomeContactoSS))) {
            unset($this->NomeContactoSS);
        } else {
            $this->NomeContactoSS = $nomeContactoSS;
        }
        return $this;
    }
    /**
     * Get NomeMutua 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 getNomeMutua()
    {
        return isset($this->NomeMutua) ? $this->NomeMutua : null;
    }
    /**
     * Set NomeMutua 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 $nomeMutua
     * @return \StructType\EstabelecimentosERP
     */
    public function setNomeMutua($nomeMutua = null)
    {
        // validation for constraint: string
        if (!is_null($nomeMutua) && !is_string($nomeMutua)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($nomeMutua)), __LINE__);
        }
        if (is_null($nomeMutua) || (is_array($nomeMutua) && empty($nomeMutua))) {
            unset($this->NomeMutua);
        } else {
            $this->NomeMutua = $nomeMutua;
        }
        return $this;
    }
    /**
     * Get NumCGA 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 getNumCGA()
    {
        return isset($this->NumCGA) ? $this->NumCGA : null;
    }
    /**
     * Set NumCGA 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 $numCGA
     * @return \StructType\EstabelecimentosERP
     */
    public function setNumCGA($numCGA = null)
    {
        // validation for constraint: string
        if (!is_null($numCGA) && !is_string($numCGA)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($numCGA)), __LINE__);
        }
        if (is_null($numCGA) || (is_array($numCGA) && empty($numCGA))) {
            unset($this->NumCGA);
        } else {
            $this->NumCGA = $numCGA;
        }
        return $this;
    }
    /**
     * Get NumEmpregados 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 int|null
     */
    public function getNumEmpregados()
    {
        return isset($this->NumEmpregados) ? $this->NumEmpregados : null;
    }
    /**
     * Set NumEmpregados 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 int $numEmpregados
     * @return \StructType\EstabelecimentosERP
     */
    public function setNumEmpregados($numEmpregados = null)
    {
        // validation for constraint: int
        if (!is_null($numEmpregados) && !is_numeric($numEmpregados)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($numEmpregados)), __LINE__);
        }
        if (is_null($numEmpregados) || (is_array($numEmpregados) && empty($numEmpregados))) {
            unset($this->NumEmpregados);
        } else {
            $this->NumEmpregados = $numEmpregados;
        }
        return $this;
    }
    /**
     * Get NumSegSocial 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 getNumSegSocial()
    {
        return isset($this->NumSegSocial) ? $this->NumSegSocial : null;
    }
    /**
     * Set NumSegSocial 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 $numSegSocial
     * @return \StructType\EstabelecimentosERP
     */
    public function setNumSegSocial($numSegSocial = null)
    {
        // validation for constraint: string
        if (!is_null($numSegSocial) && !is_string($numSegSocial)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($numSegSocial)), __LINE__);
        }
        if (is_null($numSegSocial) || (is_array($numSegSocial) && empty($numSegSocial))) {
            unset($this->NumSegSocial);
        } else {
            $this->NumSegSocial = $numSegSocial;
        }
        return $this;
    }
    /**
     * Get OrganizServicosSHST value
     * @return bool|null
     */
    public function getOrganizServicosSHST()
    {
        return $this->OrganizServicosSHST;
    }
    /**
     * Set OrganizServicosSHST value
     * @param bool $organizServicosSHST
     * @return \StructType\EstabelecimentosERP
     */
    public function setOrganizServicosSHST($organizServicosSHST = null)
    {
        // validation for constraint: boolean
        if (!is_null($organizServicosSHST) && !is_bool($organizServicosSHST)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($organizServicosSHST)), __LINE__);
        }
        $this->OrganizServicosSHST = $organizServicosSHST;
        return $this;
    }
    /**
     * Get PrimeiroApelido 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 getPrimeiroApelido()
    {
        return isset($this->PrimeiroApelido) ? $this->PrimeiroApelido : null;
    }
    /**
     * Set PrimeiroApelido 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 $primeiroApelido
     * @return \StructType\EstabelecimentosERP
     */
    public function setPrimeiroApelido($primeiroApelido = null)
    {
        // validation for constraint: string
        if (!is_null($primeiroApelido) && !is_string($primeiroApelido)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($primeiroApelido)), __LINE__);
        }
        if (is_null($primeiroApelido) || (is_array($primeiroApelido) && empty($primeiroApelido))) {
            unset($this->PrimeiroApelido);
        } else {
            $this->PrimeiroApelido = $primeiroApelido;
        }
        return $this;
    }
    /**
     * Get PrimeiroNome 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 getPrimeiroNome()
    {
        return isset($this->PrimeiroNome) ? $this->PrimeiroNome : null;
    }
    /**
     * Set PrimeiroNome 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 $primeiroNome
     * @return \StructType\EstabelecimentosERP
     */
    public function setPrimeiroNome($primeiroNome = null)
    {
        // validation for constraint: string
        if (!is_null($primeiroNome) && !is_string($primeiroNome)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($primeiroNome)), __LINE__);
        }
        if (is_null($primeiroNome) || (is_array($primeiroNome) && empty($primeiroNome))) {
            unset($this->PrimeiroNome);
        } else {
            $this->PrimeiroNome = $primeiroNome;
        }
        return $this;
    }
    /**
     * Get Protegida value
     * @return bool|null
     */
    public function getProtegida()
    {
        return $this->Protegida;
    }
    /**
     * Set Protegida value
     * @param bool $protegida
     * @return \StructType\EstabelecimentosERP
     */
    public function setProtegida($protegida = null)
    {
        // validation for constraint: boolean
        if (!is_null($protegida) && !is_bool($protegida)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($protegida)), __LINE__);
        }
        $this->Protegida = $protegida;
        return $this;
    }
    /**
     * Get RepFinancas 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 getRepFinancas()
    {
        return isset($this->RepFinancas) ? $this->RepFinancas : null;
    }
    /**
     * Set RepFinancas 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 $repFinancas
     * @return \StructType\EstabelecimentosERP
     */
    public function setRepFinancas($repFinancas = null)
    {
        // validation for constraint: string
        if (!is_null($repFinancas) && !is_string($repFinancas)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($repFinancas)), __LINE__);
        }
        if (is_null($repFinancas) || (is_array($repFinancas) && empty($repFinancas))) {
            unset($this->RepFinancas);
        } else {
            $this->RepFinancas = $repFinancas;
        }
        return $this;
    }
    /**
     * Get SaudeEntidade 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 getSaudeEntidade()
    {
        return isset($this->SaudeEntidade) ? $this->SaudeEntidade : null;
    }
    /**
     * Set SaudeEntidade 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 $saudeEntidade
     * @return \StructType\EstabelecimentosERP
     */
    public function setSaudeEntidade($saudeEntidade = null)
    {
        // validation for constraint: string
        if (!is_null($saudeEntidade) && !is_string($saudeEntidade)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($saudeEntidade)), __LINE__);
        }
        if (is_null($saudeEntidade) || (is_array($saudeEntidade) && empty($saudeEntidade))) {
            unset($this->SaudeEntidade);
        } else {
            $this->SaudeEntidade = $saudeEntidade;
        }
        return $this;
    }
    /**
     * Get SaudeTipoEntidade 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 getSaudeTipoEntidade()
    {
        return isset($this->SaudeTipoEntidade) ? $this->SaudeTipoEntidade : null;
    }
    /**
     * Set SaudeTipoEntidade 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 $saudeTipoEntidade
     * @return \StructType\EstabelecimentosERP
     */
    public function setSaudeTipoEntidade($saudeTipoEntidade = null)
    {
        // validation for constraint: string
        if (!is_null($saudeTipoEntidade) && !is_string($saudeTipoEntidade)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($saudeTipoEntidade)), __LINE__);
        }
        if (is_null($saudeTipoEntidade) || (is_array($saudeTipoEntidade) && empty($saudeTipoEntidade))) {
            unset($this->SaudeTipoEntidade);
        } else {
            $this->SaudeTipoEntidade = $saudeTipoEntidade;
        }
        return $this;
    }
    /**
     * Get Sede value
     * @return bool|null
     */
    public function getSede()
    {
        return $this->Sede;
    }
    /**
     * Set Sede value
     * @param bool $sede
     * @return \StructType\EstabelecimentosERP
     */
    public function setSede($sede = null)
    {
        // validation for constraint: boolean
        if (!is_null($sede) && !is_bool($sede)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($sede)), __LINE__);
        }
        $this->Sede = $sede;
        return $this;
    }
    /**
     * Get SegHigieneEntidade 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 getSegHigieneEntidade()
    {
        return isset($this->SegHigieneEntidade) ? $this->SegHigieneEntidade : null;
    }
    /**
     * Set SegHigieneEntidade 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 $segHigieneEntidade
     * @return \StructType\EstabelecimentosERP
     */
    public function setSegHigieneEntidade($segHigieneEntidade = null)
    {
        // validation for constraint: string
        if (!is_null($segHigieneEntidade) && !is_string($segHigieneEntidade)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($segHigieneEntidade)), __LINE__);
        }
        if (is_null($segHigieneEntidade) || (is_array($segHigieneEntidade) && empty($segHigieneEntidade))) {
            unset($this->SegHigieneEntidade);
        } else {
            $this->SegHigieneEntidade = $segHigieneEntidade;
        }
        return $this;
    }
    /**
     * Get SegHigieneTipoEntidade 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 getSegHigieneTipoEntidade()
    {
        return isset($this->SegHigieneTipoEntidade) ? $this->SegHigieneTipoEntidade : null;
    }
    /**
     * Set SegHigieneTipoEntidade 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 $segHigieneTipoEntidade
     * @return \StructType\EstabelecimentosERP
     */
    public function setSegHigieneTipoEntidade($segHigieneTipoEntidade = null)
    {
        // validation for constraint: string
        if (!is_null($segHigieneTipoEntidade) && !is_string($segHigieneTipoEntidade)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($segHigieneTipoEntidade)), __LINE__);
        }
        if (is_null($segHigieneTipoEntidade) || (is_array($segHigieneTipoEntidade) && empty($segHigieneTipoEntidade))) {
            unset($this->SegHigieneTipoEntidade);
        } else {
            $this->SegHigieneTipoEntidade = $segHigieneTipoEntidade;
        }
        return $this;
    }
    /**
     * Get SegSocial 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 getSegSocial()
    {
        return isset($this->SegSocial) ? $this->SegSocial : null;
    }
    /**
     * Set SegSocial 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 $segSocial
     * @return \StructType\EstabelecimentosERP
     */
    public function setSegSocial($segSocial = null)
    {
        // validation for constraint: string
        if (!is_null($segSocial) && !is_string($segSocial)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($segSocial)), __LINE__);
        }
        if (is_null($segSocial) || (is_array($segSocial) && empty($segSocial))) {
            unset($this->SegSocial);
        } else {
            $this->SegSocial = $segSocial;
        }
        return $this;
    }
    /**
     * Get SegundoApelido 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 getSegundoApelido()
    {
        return isset($this->SegundoApelido) ? $this->SegundoApelido : null;
    }
    /**
     * Set SegundoApelido 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 $segundoApelido
     * @return \StructType\EstabelecimentosERP
     */
    public function setSegundoApelido($segundoApelido = null)
    {
        // validation for constraint: string
        if (!is_null($segundoApelido) && !is_string($segundoApelido)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($segundoApelido)), __LINE__);
        }
        if (is_null($segundoApelido) || (is_array($segundoApelido) && empty($segundoApelido))) {
            unset($this->SegundoApelido);
        } else {
            $this->SegundoApelido = $segundoApelido;
        }
        return $this;
    }
    /**
     * Get Telefone 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 getTelefone()
    {
        return isset($this->Telefone) ? $this->Telefone : null;
    }
    /**
     * Set Telefone 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 $telefone
     * @return \StructType\EstabelecimentosERP
     */
    public function setTelefone($telefone = null)
    {
        // validation for constraint: string
        if (!is_null($telefone) && !is_string($telefone)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($telefone)), __LINE__);
        }
        if (is_null($telefone) || (is_array($telefone) && empty($telefone))) {
            unset($this->Telefone);
        } else {
            $this->Telefone = $telefone;
        }
        return $this;
    }
    /**
     * Get TelefoneAltContactoSHST 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 getTelefoneAltContactoSHST()
    {
        return isset($this->TelefoneAltContactoSHST) ? $this->TelefoneAltContactoSHST : null;
    }
    /**
     * Set TelefoneAltContactoSHST 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 $telefoneAltContactoSHST
     * @return \StructType\EstabelecimentosERP
     */
    public function setTelefoneAltContactoSHST($telefoneAltContactoSHST = null)
    {
        // validation for constraint: string
        if (!is_null($telefoneAltContactoSHST) && !is_string($telefoneAltContactoSHST)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($telefoneAltContactoSHST)), __LINE__);
        }
        if (is_null($telefoneAltContactoSHST) || (is_array($telefoneAltContactoSHST) && empty($telefoneAltContactoSHST))) {
            unset($this->TelefoneAltContactoSHST);
        } else {
            $this->TelefoneAltContactoSHST = $telefoneAltContactoSHST;
        }
        return $this;
    }
    /**
     * Get TelefonePrincContactoSHST 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 getTelefonePrincContactoSHST()
    {
        return isset($this->TelefonePrincContactoSHST) ? $this->TelefonePrincContactoSHST : null;
    }
    /**
     * Set TelefonePrincContactoSHST 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 $telefonePrincContactoSHST
     * @return \StructType\EstabelecimentosERP
     */
    public function setTelefonePrincContactoSHST($telefonePrincContactoSHST = null)
    {
        // validation for constraint: string
        if (!is_null($telefonePrincContactoSHST) && !is_string($telefonePrincContactoSHST)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($telefonePrincContactoSHST)), __LINE__);
        }
        if (is_null($telefonePrincContactoSHST) || (is_array($telefonePrincContactoSHST) && empty($telefonePrincContactoSHST))) {
            unset($this->TelefonePrincContactoSHST);
        } else {
            $this->TelefonePrincContactoSHST = $telefonePrincContactoSHST;
        }
        return $this;
    }
    /**
     * Get TelfContactoSS 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 getTelfContactoSS()
    {
        return isset($this->TelfContactoSS) ? $this->TelfContactoSS : null;
    }
    /**
     * Set TelfContactoSS 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 $telfContactoSS
     * @return \StructType\EstabelecimentosERP
     */
    public function setTelfContactoSS($telfContactoSS = null)
    {
        // validation for constraint: string
        if (!is_null($telfContactoSS) && !is_string($telfContactoSS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($telfContactoSS)), __LINE__);
        }
        if (is_null($telfContactoSS) || (is_array($telfContactoSS) && empty($telfContactoSS))) {
            unset($this->TelfContactoSS);
        } else {
            $this->TelfContactoSS = $telfContactoSS;
        }
        return $this;
    }
    /**
     * Method called when an object has been exported with var_export() functions
     * It allows to return an object instantiated with the values
     * @see AbstractStructBase::__set_state()
     * @uses AbstractStructBase::__set_state()
     * @param array $array the exported values
     * @return \StructType\EstabelecimentosERP
     */
    public static function __set_state(array $array)
    {
        return parent::__set_state($array);
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
