<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for ContactoERP StructType
 * Meta informations extracted from the WSDL
 * - nillable: true
 * - type: tns:ContactoERP
 * @subpackage Structs
 */
class ContactoERP extends AbstractStructBase
{
    /**
     * The CDU_ComReferenciaMB
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CDU_ComReferenciaMB;
    /**
     * The CDU_ConfigEasyPayGeracao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $CDU_ConfigEasyPayGeracao;
    /**
     * The CDU_DataEmissaoDocIdent
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $CDU_DataEmissaoDocIdent;
    /**
     * The CDU_Email
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_Email;
    /**
     * The CDU_EntidadeMB
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_EntidadeMB;
    /**
     * The CDU_EstadoCivil
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_EstadoCivil;
    /**
     * The CDU_ExtensaoFoto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_ExtensaoFoto;
    /**
     * The CDU_FaturacaoEletronica
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CDU_FaturacaoEletronica;
    /**
     * The CDU_Foto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_Foto;
    /**
     * The CDU_IBanSDD
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_IBanSDD;
    /**
     * The CDU_Newsletter
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CDU_Newsletter;
    /**
     * The CDU_NibSDD
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_NibSDD;
    /**
     * The CDU_NomeFoto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_NomeFoto;
    /**
     * The CDU_NumIdentificacao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_NumIdentificacao;
    /**
     * The CDU_PagamentoSEPA
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CDU_PagamentoSEPA;
    /**
     * The CDU_Parceiro
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_Parceiro;
    /**
     * The CDU_ReferenciaMB
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_ReferenciaMB;
    /**
     * The CDU_SWIFTSDD
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_SWIFTSDD;
    /**
     * The CDU_TipoDocIdentificacao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_TipoDocIdentificacao;
    /**
     * The CodPostal
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodPostal;
    /**
     * The CodPostalLocal
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodPostalLocal;
    /**
     * The CodPostalLocalResid
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodPostalLocalResid;
    /**
     * The CodPostalResid
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodPostalResid;
    /**
     * The Contacto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Contacto;
    /**
     * The ContactoSistema
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $ContactoSistema;
    /**
     * The CriadoPor
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CriadoPor;
    /**
     * The DataNascimento
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DataNascimento;
    /**
     * The DataUltContacto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DataUltContacto;
    /**
     * 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 EmailAssist
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $EmailAssist;
    /**
     * The EmailResid
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $EmailResid;
    /**
     * The EndIgualAnterior
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $EndIgualAnterior;
    /**
     * The EnderecoWeb
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $EnderecoWeb;
    /**
     * The Extensao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Extensao;
    /**
     * The Extensao2
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Extensao2;
    /**
     * The ExtensaoAssist
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ExtensaoAssist;
    /**
     * The Fax
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Fax;
    /**
     * The Filial
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Filial;
    /**
     * The Id
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * - pattern: [\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}
     * - type: tns:guid
     * @var string
     */
    public $Id;
    /**
     * The LinhasContactoEntidades
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \ArrayType\ArrayOfLinhasContactoEntidadesERP
     */
    public $LinhasContactoEntidades;
    /**
     * The Localidade
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Localidade;
    /**
     * The LocalidadeResid
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $LocalidadeResid;
    /**
     * The ModoResposta
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ModoResposta;
    /**
     * The Morada
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Morada;
    /**
     * The Morada2
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Morada2;
    /**
     * The MoradaResid
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $MoradaResid;
    /**
     * The NomeAssist
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NomeAssist;
    /**
     * The NomeConjuge
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NomeConjuge;
    /**
     * The NomesIntermedios
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NomesIntermedios;
    /**
     * The Notas
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Notas;
    /**
     * The NumContribuinte
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NumContribuinte;
    /**
     * The OrigemContacto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $OrigemContacto;
    /**
     * The Pais
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Pais;
    /**
     * The PaisResid
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $PaisResid;
    /**
     * 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 SexoMasculino
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $SexoMasculino;
    /**
     * The Telefone
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Telefone;
    /**
     * The Telefone2
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Telefone2;
    /**
     * The TelefoneAssist
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TelefoneAssist;
    /**
     * The TelefoneResid
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TelefoneResid;
    /**
     * The Telemovel
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Telemovel;
    /**
     * The TelemovelAssist
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TelemovelAssist;
    /**
     * The TemFilhos
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $TemFilhos;
    /**
     * The Titulo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Titulo;
    /**
     * The TituloAssist
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TituloAssist;
    /**
     * The UltimoNome
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UltimoNome;
    /**
     * The VersaoUltAct
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $VersaoUltAct;
    /**
     * The Zona
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Zona;
    /**
     * Constructor method for ContactoERP
     * @uses ContactoERP::setCDU_ComReferenciaMB()
     * @uses ContactoERP::setCDU_ConfigEasyPayGeracao()
     * @uses ContactoERP::setCDU_DataEmissaoDocIdent()
     * @uses ContactoERP::setCDU_Email()
     * @uses ContactoERP::setCDU_EntidadeMB()
     * @uses ContactoERP::setCDU_EstadoCivil()
     * @uses ContactoERP::setCDU_ExtensaoFoto()
     * @uses ContactoERP::setCDU_FaturacaoEletronica()
     * @uses ContactoERP::setCDU_Foto()
     * @uses ContactoERP::setCDU_IBanSDD()
     * @uses ContactoERP::setCDU_Newsletter()
     * @uses ContactoERP::setCDU_NibSDD()
     * @uses ContactoERP::setCDU_NomeFoto()
     * @uses ContactoERP::setCDU_NumIdentificacao()
     * @uses ContactoERP::setCDU_PagamentoSEPA()
     * @uses ContactoERP::setCDU_Parceiro()
     * @uses ContactoERP::setCDU_ReferenciaMB()
     * @uses ContactoERP::setCDU_SWIFTSDD()
     * @uses ContactoERP::setCDU_TipoDocIdentificacao()
     * @uses ContactoERP::setCodPostal()
     * @uses ContactoERP::setCodPostalLocal()
     * @uses ContactoERP::setCodPostalLocalResid()
     * @uses ContactoERP::setCodPostalResid()
     * @uses ContactoERP::setContacto()
     * @uses ContactoERP::setContactoSistema()
     * @uses ContactoERP::setCriadoPor()
     * @uses ContactoERP::setDataNascimento()
     * @uses ContactoERP::setDataUltContacto()
     * @uses ContactoERP::setDistrito()
     * @uses ContactoERP::setEmail()
     * @uses ContactoERP::setEmailAssist()
     * @uses ContactoERP::setEmailResid()
     * @uses ContactoERP::setEndIgualAnterior()
     * @uses ContactoERP::setEnderecoWeb()
     * @uses ContactoERP::setExtensao()
     * @uses ContactoERP::setExtensao2()
     * @uses ContactoERP::setExtensaoAssist()
     * @uses ContactoERP::setFax()
     * @uses ContactoERP::setFilial()
     * @uses ContactoERP::setId()
     * @uses ContactoERP::setLinhasContactoEntidades()
     * @uses ContactoERP::setLocalidade()
     * @uses ContactoERP::setLocalidadeResid()
     * @uses ContactoERP::setModoResposta()
     * @uses ContactoERP::setMorada()
     * @uses ContactoERP::setMorada2()
     * @uses ContactoERP::setMoradaResid()
     * @uses ContactoERP::setNomeAssist()
     * @uses ContactoERP::setNomeConjuge()
     * @uses ContactoERP::setNomesIntermedios()
     * @uses ContactoERP::setNotas()
     * @uses ContactoERP::setNumContribuinte()
     * @uses ContactoERP::setOrigemContacto()
     * @uses ContactoERP::setPais()
     * @uses ContactoERP::setPaisResid()
     * @uses ContactoERP::setPrimeiroNome()
     * @uses ContactoERP::setProtegida()
     * @uses ContactoERP::setSexoMasculino()
     * @uses ContactoERP::setTelefone()
     * @uses ContactoERP::setTelefone2()
     * @uses ContactoERP::setTelefoneAssist()
     * @uses ContactoERP::setTelefoneResid()
     * @uses ContactoERP::setTelemovel()
     * @uses ContactoERP::setTelemovelAssist()
     * @uses ContactoERP::setTemFilhos()
     * @uses ContactoERP::setTitulo()
     * @uses ContactoERP::setTituloAssist()
     * @uses ContactoERP::setUltimoNome()
     * @uses ContactoERP::setVersaoUltAct()
     * @uses ContactoERP::setZona()
     * @param bool $cDU_ComReferenciaMB
     * @param int $cDU_ConfigEasyPayGeracao
     * @param string $cDU_DataEmissaoDocIdent
     * @param string $cDU_Email
     * @param string $cDU_EntidadeMB
     * @param string $cDU_EstadoCivil
     * @param string $cDU_ExtensaoFoto
     * @param bool $cDU_FaturacaoEletronica
     * @param string $cDU_Foto
     * @param string $cDU_IBanSDD
     * @param bool $cDU_Newsletter
     * @param string $cDU_NibSDD
     * @param string $cDU_NomeFoto
     * @param string $cDU_NumIdentificacao
     * @param bool $cDU_PagamentoSEPA
     * @param string $cDU_Parceiro
     * @param string $cDU_ReferenciaMB
     * @param string $cDU_SWIFTSDD
     * @param string $cDU_TipoDocIdentificacao
     * @param string $codPostal
     * @param string $codPostalLocal
     * @param string $codPostalLocalResid
     * @param string $codPostalResid
     * @param string $contacto
     * @param bool $contactoSistema
     * @param string $criadoPor
     * @param string $dataNascimento
     * @param string $dataUltContacto
     * @param string $distrito
     * @param string $email
     * @param string $emailAssist
     * @param string $emailResid
     * @param bool $endIgualAnterior
     * @param string $enderecoWeb
     * @param string $extensao
     * @param string $extensao2
     * @param string $extensaoAssist
     * @param string $fax
     * @param string $filial
     * @param string $id
     * @param \ArrayType\ArrayOfLinhasContactoEntidadesERP $linhasContactoEntidades
     * @param string $localidade
     * @param string $localidadeResid
     * @param string $modoResposta
     * @param string $morada
     * @param string $morada2
     * @param string $moradaResid
     * @param string $nomeAssist
     * @param string $nomeConjuge
     * @param string $nomesIntermedios
     * @param string $notas
     * @param string $numContribuinte
     * @param string $origemContacto
     * @param string $pais
     * @param string $paisResid
     * @param string $primeiroNome
     * @param bool $protegida
     * @param bool $sexoMasculino
     * @param string $telefone
     * @param string $telefone2
     * @param string $telefoneAssist
     * @param string $telefoneResid
     * @param string $telemovel
     * @param string $telemovelAssist
     * @param bool $temFilhos
     * @param string $titulo
     * @param string $tituloAssist
     * @param string $ultimoNome
     * @param string $versaoUltAct
     * @param string $zona
     */
    public function __construct($cDU_ComReferenciaMB = null, $cDU_ConfigEasyPayGeracao = null, $cDU_DataEmissaoDocIdent = null, $cDU_Email = null, $cDU_EntidadeMB = null, $cDU_EstadoCivil = null, $cDU_ExtensaoFoto = null, $cDU_FaturacaoEletronica = null, $cDU_Foto = null, $cDU_IBanSDD = null, $cDU_Newsletter = null, $cDU_NibSDD = null, $cDU_NomeFoto = null, $cDU_NumIdentificacao = null, $cDU_PagamentoSEPA = null, $cDU_Parceiro = null, $cDU_ReferenciaMB = null, $cDU_SWIFTSDD = null, $cDU_TipoDocIdentificacao = null, $codPostal = null, $codPostalLocal = null, $codPostalLocalResid = null, $codPostalResid = null, $contacto = null, $contactoSistema = null, $criadoPor = null, $dataNascimento = null, $dataUltContacto = null, $distrito = null, $email = null, $emailAssist = null, $emailResid = null, $endIgualAnterior = null, $enderecoWeb = null, $extensao = null, $extensao2 = null, $extensaoAssist = null, $fax = null, $filial = null, $id = null, \ArrayType\ArrayOfLinhasContactoEntidadesERP $linhasContactoEntidades = null, $localidade = null, $localidadeResid = null, $modoResposta = null, $morada = null, $morada2 = null, $moradaResid = null, $nomeAssist = null, $nomeConjuge = null, $nomesIntermedios = null, $notas = null, $numContribuinte = null, $origemContacto = null, $pais = null, $paisResid = null, $primeiroNome = null, $protegida = null, $sexoMasculino = null, $telefone = null, $telefone2 = null, $telefoneAssist = null, $telefoneResid = null, $telemovel = null, $telemovelAssist = null, $temFilhos = null, $titulo = null, $tituloAssist = null, $ultimoNome = null, $versaoUltAct = null, $zona = null)
    {
        $this
            ->setCDU_ComReferenciaMB($cDU_ComReferenciaMB)
            ->setCDU_ConfigEasyPayGeracao($cDU_ConfigEasyPayGeracao)
            ->setCDU_DataEmissaoDocIdent($cDU_DataEmissaoDocIdent)
            ->setCDU_Email($cDU_Email)
            ->setCDU_EntidadeMB($cDU_EntidadeMB)
            ->setCDU_EstadoCivil($cDU_EstadoCivil)
            ->setCDU_ExtensaoFoto($cDU_ExtensaoFoto)
            ->setCDU_FaturacaoEletronica($cDU_FaturacaoEletronica)
            ->setCDU_Foto($cDU_Foto)
            ->setCDU_IBanSDD($cDU_IBanSDD)
            ->setCDU_Newsletter($cDU_Newsletter)
            ->setCDU_NibSDD($cDU_NibSDD)
            ->setCDU_NomeFoto($cDU_NomeFoto)
            ->setCDU_NumIdentificacao($cDU_NumIdentificacao)
            ->setCDU_PagamentoSEPA($cDU_PagamentoSEPA)
            ->setCDU_Parceiro($cDU_Parceiro)
            ->setCDU_ReferenciaMB($cDU_ReferenciaMB)
            ->setCDU_SWIFTSDD($cDU_SWIFTSDD)
            ->setCDU_TipoDocIdentificacao($cDU_TipoDocIdentificacao)
            ->setCodPostal($codPostal)
            ->setCodPostalLocal($codPostalLocal)
            ->setCodPostalLocalResid($codPostalLocalResid)
            ->setCodPostalResid($codPostalResid)
            ->setContacto($contacto)
            ->setContactoSistema($contactoSistema)
            ->setCriadoPor($criadoPor)
            ->setDataNascimento($dataNascimento)
            ->setDataUltContacto($dataUltContacto)
            ->setDistrito($distrito)
            ->setEmail($email)
            ->setEmailAssist($emailAssist)
            ->setEmailResid($emailResid)
            ->setEndIgualAnterior($endIgualAnterior)
            ->setEnderecoWeb($enderecoWeb)
            ->setExtensao($extensao)
            ->setExtensao2($extensao2)
            ->setExtensaoAssist($extensaoAssist)
            ->setFax($fax)
            ->setFilial($filial)
            ->setId($id)
            ->setLinhasContactoEntidades($linhasContactoEntidades)
            ->setLocalidade($localidade)
            ->setLocalidadeResid($localidadeResid)
            ->setModoResposta($modoResposta)
            ->setMorada($morada)
            ->setMorada2($morada2)
            ->setMoradaResid($moradaResid)
            ->setNomeAssist($nomeAssist)
            ->setNomeConjuge($nomeConjuge)
            ->setNomesIntermedios($nomesIntermedios)
            ->setNotas($notas)
            ->setNumContribuinte($numContribuinte)
            ->setOrigemContacto($origemContacto)
            ->setPais($pais)
            ->setPaisResid($paisResid)
            ->setPrimeiroNome($primeiroNome)
            ->setProtegida($protegida)
            ->setSexoMasculino($sexoMasculino)
            ->setTelefone($telefone)
            ->setTelefone2($telefone2)
            ->setTelefoneAssist($telefoneAssist)
            ->setTelefoneResid($telefoneResid)
            ->setTelemovel($telemovel)
            ->setTelemovelAssist($telemovelAssist)
            ->setTemFilhos($temFilhos)
            ->setTitulo($titulo)
            ->setTituloAssist($tituloAssist)
            ->setUltimoNome($ultimoNome)
            ->setVersaoUltAct($versaoUltAct)
            ->setZona($zona);
    }
    /**
     * Get CDU_ComReferenciaMB 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 bool|null
     */
    public function getCDU_ComReferenciaMB()
    {
        return isset($this->CDU_ComReferenciaMB) ? $this->CDU_ComReferenciaMB : null;
    }
    /**
     * Set CDU_ComReferenciaMB 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 bool $cDU_ComReferenciaMB
     * @return \StructType\ContactoERP
     */
    public function setCDU_ComReferenciaMB($cDU_ComReferenciaMB = null)
    {
        // validation for constraint: boolean
        if (!is_null($cDU_ComReferenciaMB) && !is_bool($cDU_ComReferenciaMB)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($cDU_ComReferenciaMB)), __LINE__);
        }
        if (is_null($cDU_ComReferenciaMB) || (is_array($cDU_ComReferenciaMB) && empty($cDU_ComReferenciaMB))) {
            unset($this->CDU_ComReferenciaMB);
        } else {
            $this->CDU_ComReferenciaMB = $cDU_ComReferenciaMB;
        }
        return $this;
    }
    /**
     * Get CDU_ConfigEasyPayGeracao value
     * @return int|null
     */
    public function getCDU_ConfigEasyPayGeracao()
    {
        return $this->CDU_ConfigEasyPayGeracao;
    }
    /**
     * Set CDU_ConfigEasyPayGeracao value
     * @param int $cDU_ConfigEasyPayGeracao
     * @return \StructType\ContactoERP
     */
    public function setCDU_ConfigEasyPayGeracao($cDU_ConfigEasyPayGeracao = null)
    {
        // validation for constraint: int
        if (!is_null($cDU_ConfigEasyPayGeracao) && !is_numeric($cDU_ConfigEasyPayGeracao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($cDU_ConfigEasyPayGeracao)), __LINE__);
        }
        $this->CDU_ConfigEasyPayGeracao = $cDU_ConfigEasyPayGeracao;
        return $this;
    }
    /**
     * Get CDU_DataEmissaoDocIdent value
     * @return string|null
     */
    public function getCDU_DataEmissaoDocIdent()
    {
        return $this->CDU_DataEmissaoDocIdent;
    }
    /**
     * Set CDU_DataEmissaoDocIdent value
     * @param string $cDU_DataEmissaoDocIdent
     * @return \StructType\ContactoERP
     */
    public function setCDU_DataEmissaoDocIdent($cDU_DataEmissaoDocIdent = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_DataEmissaoDocIdent) && !is_string($cDU_DataEmissaoDocIdent)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_DataEmissaoDocIdent)), __LINE__);
        }
        $this->CDU_DataEmissaoDocIdent = $cDU_DataEmissaoDocIdent;
        return $this;
    }
    /**
     * Get CDU_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 getCDU_Email()
    {
        return isset($this->CDU_Email) ? $this->CDU_Email : null;
    }
    /**
     * Set CDU_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 $cDU_Email
     * @return \StructType\ContactoERP
     */
    public function setCDU_Email($cDU_Email = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_Email) && !is_string($cDU_Email)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_Email)), __LINE__);
        }
        if (is_null($cDU_Email) || (is_array($cDU_Email) && empty($cDU_Email))) {
            unset($this->CDU_Email);
        } else {
            $this->CDU_Email = $cDU_Email;
        }
        return $this;
    }
    /**
     * Get CDU_EntidadeMB 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_EntidadeMB()
    {
        return isset($this->CDU_EntidadeMB) ? $this->CDU_EntidadeMB : null;
    }
    /**
     * Set CDU_EntidadeMB 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_EntidadeMB
     * @return \StructType\ContactoERP
     */
    public function setCDU_EntidadeMB($cDU_EntidadeMB = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_EntidadeMB) && !is_string($cDU_EntidadeMB)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_EntidadeMB)), __LINE__);
        }
        if (is_null($cDU_EntidadeMB) || (is_array($cDU_EntidadeMB) && empty($cDU_EntidadeMB))) {
            unset($this->CDU_EntidadeMB);
        } else {
            $this->CDU_EntidadeMB = $cDU_EntidadeMB;
        }
        return $this;
    }
    /**
     * Get CDU_EstadoCivil 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_EstadoCivil()
    {
        return isset($this->CDU_EstadoCivil) ? $this->CDU_EstadoCivil : null;
    }
    /**
     * Set CDU_EstadoCivil 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_EstadoCivil
     * @return \StructType\ContactoERP
     */
    public function setCDU_EstadoCivil($cDU_EstadoCivil = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_EstadoCivil) && !is_string($cDU_EstadoCivil)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_EstadoCivil)), __LINE__);
        }
        if (is_null($cDU_EstadoCivil) || (is_array($cDU_EstadoCivil) && empty($cDU_EstadoCivil))) {
            unset($this->CDU_EstadoCivil);
        } else {
            $this->CDU_EstadoCivil = $cDU_EstadoCivil;
        }
        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\ContactoERP
     */
    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_FaturacaoEletronica 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 bool|null
     */
    public function getCDU_FaturacaoEletronica()
    {
        return isset($this->CDU_FaturacaoEletronica) ? $this->CDU_FaturacaoEletronica : null;
    }
    /**
     * Set CDU_FaturacaoEletronica 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 bool $cDU_FaturacaoEletronica
     * @return \StructType\ContactoERP
     */
    public function setCDU_FaturacaoEletronica($cDU_FaturacaoEletronica = null)
    {
        // validation for constraint: boolean
        if (!is_null($cDU_FaturacaoEletronica) && !is_bool($cDU_FaturacaoEletronica)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($cDU_FaturacaoEletronica)), __LINE__);
        }
        if (is_null($cDU_FaturacaoEletronica) || (is_array($cDU_FaturacaoEletronica) && empty($cDU_FaturacaoEletronica))) {
            unset($this->CDU_FaturacaoEletronica);
        } else {
            $this->CDU_FaturacaoEletronica = $cDU_FaturacaoEletronica;
        }
        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\ContactoERP
     */
    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_IBanSDD 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_IBanSDD()
    {
        return isset($this->CDU_IBanSDD) ? $this->CDU_IBanSDD : null;
    }
    /**
     * Set CDU_IBanSDD 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_IBanSDD
     * @return \StructType\ContactoERP
     */
    public function setCDU_IBanSDD($cDU_IBanSDD = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_IBanSDD) && !is_string($cDU_IBanSDD)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_IBanSDD)), __LINE__);
        }
        if (is_null($cDU_IBanSDD) || (is_array($cDU_IBanSDD) && empty($cDU_IBanSDD))) {
            unset($this->CDU_IBanSDD);
        } else {
            $this->CDU_IBanSDD = $cDU_IBanSDD;
        }
        return $this;
    }
    /**
     * Get CDU_Newsletter 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 bool|null
     */
    public function getCDU_Newsletter()
    {
        return isset($this->CDU_Newsletter) ? $this->CDU_Newsletter : null;
    }
    /**
     * Set CDU_Newsletter 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 bool $cDU_Newsletter
     * @return \StructType\ContactoERP
     */
    public function setCDU_Newsletter($cDU_Newsletter = null)
    {
        // validation for constraint: boolean
        if (!is_null($cDU_Newsletter) && !is_bool($cDU_Newsletter)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($cDU_Newsletter)), __LINE__);
        }
        if (is_null($cDU_Newsletter) || (is_array($cDU_Newsletter) && empty($cDU_Newsletter))) {
            unset($this->CDU_Newsletter);
        } else {
            $this->CDU_Newsletter = $cDU_Newsletter;
        }
        return $this;
    }
    /**
     * Get CDU_NibSDD 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_NibSDD()
    {
        return isset($this->CDU_NibSDD) ? $this->CDU_NibSDD : null;
    }
    /**
     * Set CDU_NibSDD 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_NibSDD
     * @return \StructType\ContactoERP
     */
    public function setCDU_NibSDD($cDU_NibSDD = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_NibSDD) && !is_string($cDU_NibSDD)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_NibSDD)), __LINE__);
        }
        if (is_null($cDU_NibSDD) || (is_array($cDU_NibSDD) && empty($cDU_NibSDD))) {
            unset($this->CDU_NibSDD);
        } else {
            $this->CDU_NibSDD = $cDU_NibSDD;
        }
        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\ContactoERP
     */
    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_NumIdentificacao 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_NumIdentificacao()
    {
        return isset($this->CDU_NumIdentificacao) ? $this->CDU_NumIdentificacao : null;
    }
    /**
     * Set CDU_NumIdentificacao 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_NumIdentificacao
     * @return \StructType\ContactoERP
     */
    public function setCDU_NumIdentificacao($cDU_NumIdentificacao = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_NumIdentificacao) && !is_string($cDU_NumIdentificacao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_NumIdentificacao)), __LINE__);
        }
        if (is_null($cDU_NumIdentificacao) || (is_array($cDU_NumIdentificacao) && empty($cDU_NumIdentificacao))) {
            unset($this->CDU_NumIdentificacao);
        } else {
            $this->CDU_NumIdentificacao = $cDU_NumIdentificacao;
        }
        return $this;
    }
    /**
     * Get CDU_PagamentoSEPA 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 bool|null
     */
    public function getCDU_PagamentoSEPA()
    {
        return isset($this->CDU_PagamentoSEPA) ? $this->CDU_PagamentoSEPA : null;
    }
    /**
     * Set CDU_PagamentoSEPA 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 bool $cDU_PagamentoSEPA
     * @return \StructType\ContactoERP
     */
    public function setCDU_PagamentoSEPA($cDU_PagamentoSEPA = null)
    {
        // validation for constraint: boolean
        if (!is_null($cDU_PagamentoSEPA) && !is_bool($cDU_PagamentoSEPA)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($cDU_PagamentoSEPA)), __LINE__);
        }
        if (is_null($cDU_PagamentoSEPA) || (is_array($cDU_PagamentoSEPA) && empty($cDU_PagamentoSEPA))) {
            unset($this->CDU_PagamentoSEPA);
        } else {
            $this->CDU_PagamentoSEPA = $cDU_PagamentoSEPA;
        }
        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\ContactoERP
     */
    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_ReferenciaMB 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_ReferenciaMB()
    {
        return isset($this->CDU_ReferenciaMB) ? $this->CDU_ReferenciaMB : null;
    }
    /**
     * Set CDU_ReferenciaMB 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_ReferenciaMB
     * @return \StructType\ContactoERP
     */
    public function setCDU_ReferenciaMB($cDU_ReferenciaMB = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_ReferenciaMB) && !is_string($cDU_ReferenciaMB)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_ReferenciaMB)), __LINE__);
        }
        if (is_null($cDU_ReferenciaMB) || (is_array($cDU_ReferenciaMB) && empty($cDU_ReferenciaMB))) {
            unset($this->CDU_ReferenciaMB);
        } else {
            $this->CDU_ReferenciaMB = $cDU_ReferenciaMB;
        }
        return $this;
    }
    /**
     * Get CDU_SWIFTSDD 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_SWIFTSDD()
    {
        return isset($this->CDU_SWIFTSDD) ? $this->CDU_SWIFTSDD : null;
    }
    /**
     * Set CDU_SWIFTSDD 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_SWIFTSDD
     * @return \StructType\ContactoERP
     */
    public function setCDU_SWIFTSDD($cDU_SWIFTSDD = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_SWIFTSDD) && !is_string($cDU_SWIFTSDD)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_SWIFTSDD)), __LINE__);
        }
        if (is_null($cDU_SWIFTSDD) || (is_array($cDU_SWIFTSDD) && empty($cDU_SWIFTSDD))) {
            unset($this->CDU_SWIFTSDD);
        } else {
            $this->CDU_SWIFTSDD = $cDU_SWIFTSDD;
        }
        return $this;
    }
    /**
     * Get CDU_TipoDocIdentificacao 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_TipoDocIdentificacao()
    {
        return isset($this->CDU_TipoDocIdentificacao) ? $this->CDU_TipoDocIdentificacao : null;
    }
    /**
     * Set CDU_TipoDocIdentificacao 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_TipoDocIdentificacao
     * @return \StructType\ContactoERP
     */
    public function setCDU_TipoDocIdentificacao($cDU_TipoDocIdentificacao = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_TipoDocIdentificacao) && !is_string($cDU_TipoDocIdentificacao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_TipoDocIdentificacao)), __LINE__);
        }
        if (is_null($cDU_TipoDocIdentificacao) || (is_array($cDU_TipoDocIdentificacao) && empty($cDU_TipoDocIdentificacao))) {
            unset($this->CDU_TipoDocIdentificacao);
        } else {
            $this->CDU_TipoDocIdentificacao = $cDU_TipoDocIdentificacao;
        }
        return $this;
    }
    /**
     * Get CodPostal 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 getCodPostal()
    {
        return isset($this->CodPostal) ? $this->CodPostal : null;
    }
    /**
     * Set CodPostal 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 $codPostal
     * @return \StructType\ContactoERP
     */
    public function setCodPostal($codPostal = null)
    {
        // validation for constraint: string
        if (!is_null($codPostal) && !is_string($codPostal)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codPostal)), __LINE__);
        }
        if (is_null($codPostal) || (is_array($codPostal) && empty($codPostal))) {
            unset($this->CodPostal);
        } else {
            $this->CodPostal = $codPostal;
        }
        return $this;
    }
    /**
     * Get CodPostalLocal 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 getCodPostalLocal()
    {
        return isset($this->CodPostalLocal) ? $this->CodPostalLocal : null;
    }
    /**
     * Set CodPostalLocal 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 $codPostalLocal
     * @return \StructType\ContactoERP
     */
    public function setCodPostalLocal($codPostalLocal = null)
    {
        // validation for constraint: string
        if (!is_null($codPostalLocal) && !is_string($codPostalLocal)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codPostalLocal)), __LINE__);
        }
        if (is_null($codPostalLocal) || (is_array($codPostalLocal) && empty($codPostalLocal))) {
            unset($this->CodPostalLocal);
        } else {
            $this->CodPostalLocal = $codPostalLocal;
        }
        return $this;
    }
    /**
     * Get CodPostalLocalResid 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 getCodPostalLocalResid()
    {
        return isset($this->CodPostalLocalResid) ? $this->CodPostalLocalResid : null;
    }
    /**
     * Set CodPostalLocalResid 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 $codPostalLocalResid
     * @return \StructType\ContactoERP
     */
    public function setCodPostalLocalResid($codPostalLocalResid = null)
    {
        // validation for constraint: string
        if (!is_null($codPostalLocalResid) && !is_string($codPostalLocalResid)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codPostalLocalResid)), __LINE__);
        }
        if (is_null($codPostalLocalResid) || (is_array($codPostalLocalResid) && empty($codPostalLocalResid))) {
            unset($this->CodPostalLocalResid);
        } else {
            $this->CodPostalLocalResid = $codPostalLocalResid;
        }
        return $this;
    }
    /**
     * Get CodPostalResid 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 getCodPostalResid()
    {
        return isset($this->CodPostalResid) ? $this->CodPostalResid : null;
    }
    /**
     * Set CodPostalResid 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 $codPostalResid
     * @return \StructType\ContactoERP
     */
    public function setCodPostalResid($codPostalResid = null)
    {
        // validation for constraint: string
        if (!is_null($codPostalResid) && !is_string($codPostalResid)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codPostalResid)), __LINE__);
        }
        if (is_null($codPostalResid) || (is_array($codPostalResid) && empty($codPostalResid))) {
            unset($this->CodPostalResid);
        } else {
            $this->CodPostalResid = $codPostalResid;
        }
        return $this;
    }
    /**
     * Get Contacto 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 getContacto()
    {
        return isset($this->Contacto) ? $this->Contacto : null;
    }
    /**
     * Set Contacto 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 $contacto
     * @return \StructType\ContactoERP
     */
    public function setContacto($contacto = null)
    {
        // validation for constraint: string
        if (!is_null($contacto) && !is_string($contacto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($contacto)), __LINE__);
        }
        if (is_null($contacto) || (is_array($contacto) && empty($contacto))) {
            unset($this->Contacto);
        } else {
            $this->Contacto = $contacto;
        }
        return $this;
    }
    /**
     * Get ContactoSistema value
     * @return bool|null
     */
    public function getContactoSistema()
    {
        return $this->ContactoSistema;
    }
    /**
     * Set ContactoSistema value
     * @param bool $contactoSistema
     * @return \StructType\ContactoERP
     */
    public function setContactoSistema($contactoSistema = null)
    {
        // validation for constraint: boolean
        if (!is_null($contactoSistema) && !is_bool($contactoSistema)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($contactoSistema)), __LINE__);
        }
        $this->ContactoSistema = $contactoSistema;
        return $this;
    }
    /**
     * Get CriadoPor 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 getCriadoPor()
    {
        return isset($this->CriadoPor) ? $this->CriadoPor : null;
    }
    /**
     * Set CriadoPor 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 $criadoPor
     * @return \StructType\ContactoERP
     */
    public function setCriadoPor($criadoPor = null)
    {
        // validation for constraint: string
        if (!is_null($criadoPor) && !is_string($criadoPor)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($criadoPor)), __LINE__);
        }
        if (is_null($criadoPor) || (is_array($criadoPor) && empty($criadoPor))) {
            unset($this->CriadoPor);
        } else {
            $this->CriadoPor = $criadoPor;
        }
        return $this;
    }
    /**
     * Get DataNascimento 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 getDataNascimento()
    {
        return isset($this->DataNascimento) ? $this->DataNascimento : null;
    }
    /**
     * Set DataNascimento 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 $dataNascimento
     * @return \StructType\ContactoERP
     */
    public function setDataNascimento($dataNascimento = null)
    {
        // validation for constraint: string
        if (!is_null($dataNascimento) && !is_string($dataNascimento)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataNascimento)), __LINE__);
        }
        if (is_null($dataNascimento) || (is_array($dataNascimento) && empty($dataNascimento))) {
            unset($this->DataNascimento);
        } else {
            $this->DataNascimento = $dataNascimento;
        }
        return $this;
    }
    /**
     * Get DataUltContacto 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 getDataUltContacto()
    {
        return isset($this->DataUltContacto) ? $this->DataUltContacto : null;
    }
    /**
     * Set DataUltContacto 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 $dataUltContacto
     * @return \StructType\ContactoERP
     */
    public function setDataUltContacto($dataUltContacto = null)
    {
        // validation for constraint: string
        if (!is_null($dataUltContacto) && !is_string($dataUltContacto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataUltContacto)), __LINE__);
        }
        if (is_null($dataUltContacto) || (is_array($dataUltContacto) && empty($dataUltContacto))) {
            unset($this->DataUltContacto);
        } else {
            $this->DataUltContacto = $dataUltContacto;
        }
        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\ContactoERP
     */
    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\ContactoERP
     */
    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 EmailAssist 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 getEmailAssist()
    {
        return isset($this->EmailAssist) ? $this->EmailAssist : null;
    }
    /**
     * Set EmailAssist 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 $emailAssist
     * @return \StructType\ContactoERP
     */
    public function setEmailAssist($emailAssist = null)
    {
        // validation for constraint: string
        if (!is_null($emailAssist) && !is_string($emailAssist)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($emailAssist)), __LINE__);
        }
        if (is_null($emailAssist) || (is_array($emailAssist) && empty($emailAssist))) {
            unset($this->EmailAssist);
        } else {
            $this->EmailAssist = $emailAssist;
        }
        return $this;
    }
    /**
     * Get EmailResid 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 getEmailResid()
    {
        return isset($this->EmailResid) ? $this->EmailResid : null;
    }
    /**
     * Set EmailResid 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 $emailResid
     * @return \StructType\ContactoERP
     */
    public function setEmailResid($emailResid = null)
    {
        // validation for constraint: string
        if (!is_null($emailResid) && !is_string($emailResid)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($emailResid)), __LINE__);
        }
        if (is_null($emailResid) || (is_array($emailResid) && empty($emailResid))) {
            unset($this->EmailResid);
        } else {
            $this->EmailResid = $emailResid;
        }
        return $this;
    }
    /**
     * Get EndIgualAnterior 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 bool|null
     */
    public function getEndIgualAnterior()
    {
        return isset($this->EndIgualAnterior) ? $this->EndIgualAnterior : null;
    }
    /**
     * Set EndIgualAnterior 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 bool $endIgualAnterior
     * @return \StructType\ContactoERP
     */
    public function setEndIgualAnterior($endIgualAnterior = null)
    {
        // validation for constraint: boolean
        if (!is_null($endIgualAnterior) && !is_bool($endIgualAnterior)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($endIgualAnterior)), __LINE__);
        }
        if (is_null($endIgualAnterior) || (is_array($endIgualAnterior) && empty($endIgualAnterior))) {
            unset($this->EndIgualAnterior);
        } else {
            $this->EndIgualAnterior = $endIgualAnterior;
        }
        return $this;
    }
    /**
     * Get EnderecoWeb 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 getEnderecoWeb()
    {
        return isset($this->EnderecoWeb) ? $this->EnderecoWeb : null;
    }
    /**
     * Set EnderecoWeb 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 $enderecoWeb
     * @return \StructType\ContactoERP
     */
    public function setEnderecoWeb($enderecoWeb = null)
    {
        // validation for constraint: string
        if (!is_null($enderecoWeb) && !is_string($enderecoWeb)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($enderecoWeb)), __LINE__);
        }
        if (is_null($enderecoWeb) || (is_array($enderecoWeb) && empty($enderecoWeb))) {
            unset($this->EnderecoWeb);
        } else {
            $this->EnderecoWeb = $enderecoWeb;
        }
        return $this;
    }
    /**
     * Get Extensao 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 getExtensao()
    {
        return isset($this->Extensao) ? $this->Extensao : null;
    }
    /**
     * Set Extensao 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 $extensao
     * @return \StructType\ContactoERP
     */
    public function setExtensao($extensao = null)
    {
        // validation for constraint: string
        if (!is_null($extensao) && !is_string($extensao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($extensao)), __LINE__);
        }
        if (is_null($extensao) || (is_array($extensao) && empty($extensao))) {
            unset($this->Extensao);
        } else {
            $this->Extensao = $extensao;
        }
        return $this;
    }
    /**
     * Get Extensao2 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 getExtensao2()
    {
        return isset($this->Extensao2) ? $this->Extensao2 : null;
    }
    /**
     * Set Extensao2 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 $extensao2
     * @return \StructType\ContactoERP
     */
    public function setExtensao2($extensao2 = null)
    {
        // validation for constraint: string
        if (!is_null($extensao2) && !is_string($extensao2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($extensao2)), __LINE__);
        }
        if (is_null($extensao2) || (is_array($extensao2) && empty($extensao2))) {
            unset($this->Extensao2);
        } else {
            $this->Extensao2 = $extensao2;
        }
        return $this;
    }
    /**
     * Get ExtensaoAssist 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 getExtensaoAssist()
    {
        return isset($this->ExtensaoAssist) ? $this->ExtensaoAssist : null;
    }
    /**
     * Set ExtensaoAssist 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 $extensaoAssist
     * @return \StructType\ContactoERP
     */
    public function setExtensaoAssist($extensaoAssist = null)
    {
        // validation for constraint: string
        if (!is_null($extensaoAssist) && !is_string($extensaoAssist)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($extensaoAssist)), __LINE__);
        }
        if (is_null($extensaoAssist) || (is_array($extensaoAssist) && empty($extensaoAssist))) {
            unset($this->ExtensaoAssist);
        } else {
            $this->ExtensaoAssist = $extensaoAssist;
        }
        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\ContactoERP
     */
    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 Filial 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 getFilial()
    {
        return isset($this->Filial) ? $this->Filial : null;
    }
    /**
     * Set Filial 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 $filial
     * @return \StructType\ContactoERP
     */
    public function setFilial($filial = null)
    {
        // validation for constraint: string
        if (!is_null($filial) && !is_string($filial)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($filial)), __LINE__);
        }
        if (is_null($filial) || (is_array($filial) && empty($filial))) {
            unset($this->Filial);
        } else {
            $this->Filial = $filial;
        }
        return $this;
    }
    /**
     * Get Id value
     * @return string|null
     */
    public function getId()
    {
        return $this->Id;
    }
    /**
     * Set Id value
     * @param string $id
     * @return \StructType\ContactoERP
     */
    public function setId($id = null)
    {
        // validation for constraint: pattern
        if (is_scalar($id) && !preg_match('/[\\da-fA-F]{8}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{12}/', $id)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a scalar value that matches "[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}", "%s" given', var_export($id, true)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($id) && !is_string($id)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($id)), __LINE__);
        }
        $this->Id = $id;
        return $this;
    }
    /**
     * Get LinhasContactoEntidades 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 \ArrayType\ArrayOfLinhasContactoEntidadesERP|null
     */
    public function getLinhasContactoEntidades()
    {
        return isset($this->LinhasContactoEntidades) ? $this->LinhasContactoEntidades : null;
    }
    /**
     * Set LinhasContactoEntidades 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 \ArrayType\ArrayOfLinhasContactoEntidadesERP $linhasContactoEntidades
     * @return \StructType\ContactoERP
     */
    public function setLinhasContactoEntidades(\ArrayType\ArrayOfLinhasContactoEntidadesERP $linhasContactoEntidades = null)
    {
        if (is_null($linhasContactoEntidades) || (is_array($linhasContactoEntidades) && empty($linhasContactoEntidades))) {
            unset($this->LinhasContactoEntidades);
        } else {
            $this->LinhasContactoEntidades = $linhasContactoEntidades;
        }
        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\ContactoERP
     */
    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 LocalidadeResid 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 getLocalidadeResid()
    {
        return isset($this->LocalidadeResid) ? $this->LocalidadeResid : null;
    }
    /**
     * Set LocalidadeResid 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 $localidadeResid
     * @return \StructType\ContactoERP
     */
    public function setLocalidadeResid($localidadeResid = null)
    {
        // validation for constraint: string
        if (!is_null($localidadeResid) && !is_string($localidadeResid)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($localidadeResid)), __LINE__);
        }
        if (is_null($localidadeResid) || (is_array($localidadeResid) && empty($localidadeResid))) {
            unset($this->LocalidadeResid);
        } else {
            $this->LocalidadeResid = $localidadeResid;
        }
        return $this;
    }
    /**
     * Get ModoResposta 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 getModoResposta()
    {
        return isset($this->ModoResposta) ? $this->ModoResposta : null;
    }
    /**
     * Set ModoResposta 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 $modoResposta
     * @return \StructType\ContactoERP
     */
    public function setModoResposta($modoResposta = null)
    {
        // validation for constraint: string
        if (!is_null($modoResposta) && !is_string($modoResposta)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($modoResposta)), __LINE__);
        }
        if (is_null($modoResposta) || (is_array($modoResposta) && empty($modoResposta))) {
            unset($this->ModoResposta);
        } else {
            $this->ModoResposta = $modoResposta;
        }
        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\ContactoERP
     */
    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 Morada2 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 getMorada2()
    {
        return isset($this->Morada2) ? $this->Morada2 : null;
    }
    /**
     * Set Morada2 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 $morada2
     * @return \StructType\ContactoERP
     */
    public function setMorada2($morada2 = null)
    {
        // validation for constraint: string
        if (!is_null($morada2) && !is_string($morada2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($morada2)), __LINE__);
        }
        if (is_null($morada2) || (is_array($morada2) && empty($morada2))) {
            unset($this->Morada2);
        } else {
            $this->Morada2 = $morada2;
        }
        return $this;
    }
    /**
     * Get MoradaResid 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 getMoradaResid()
    {
        return isset($this->MoradaResid) ? $this->MoradaResid : null;
    }
    /**
     * Set MoradaResid 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 $moradaResid
     * @return \StructType\ContactoERP
     */
    public function setMoradaResid($moradaResid = null)
    {
        // validation for constraint: string
        if (!is_null($moradaResid) && !is_string($moradaResid)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($moradaResid)), __LINE__);
        }
        if (is_null($moradaResid) || (is_array($moradaResid) && empty($moradaResid))) {
            unset($this->MoradaResid);
        } else {
            $this->MoradaResid = $moradaResid;
        }
        return $this;
    }
    /**
     * Get NomeAssist 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 getNomeAssist()
    {
        return isset($this->NomeAssist) ? $this->NomeAssist : null;
    }
    /**
     * Set NomeAssist 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 $nomeAssist
     * @return \StructType\ContactoERP
     */
    public function setNomeAssist($nomeAssist = null)
    {
        // validation for constraint: string
        if (!is_null($nomeAssist) && !is_string($nomeAssist)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($nomeAssist)), __LINE__);
        }
        if (is_null($nomeAssist) || (is_array($nomeAssist) && empty($nomeAssist))) {
            unset($this->NomeAssist);
        } else {
            $this->NomeAssist = $nomeAssist;
        }
        return $this;
    }
    /**
     * Get NomeConjuge 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 getNomeConjuge()
    {
        return isset($this->NomeConjuge) ? $this->NomeConjuge : null;
    }
    /**
     * Set NomeConjuge 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 $nomeConjuge
     * @return \StructType\ContactoERP
     */
    public function setNomeConjuge($nomeConjuge = null)
    {
        // validation for constraint: string
        if (!is_null($nomeConjuge) && !is_string($nomeConjuge)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($nomeConjuge)), __LINE__);
        }
        if (is_null($nomeConjuge) || (is_array($nomeConjuge) && empty($nomeConjuge))) {
            unset($this->NomeConjuge);
        } else {
            $this->NomeConjuge = $nomeConjuge;
        }
        return $this;
    }
    /**
     * Get NomesIntermedios 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 getNomesIntermedios()
    {
        return isset($this->NomesIntermedios) ? $this->NomesIntermedios : null;
    }
    /**
     * Set NomesIntermedios 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 $nomesIntermedios
     * @return \StructType\ContactoERP
     */
    public function setNomesIntermedios($nomesIntermedios = null)
    {
        // validation for constraint: string
        if (!is_null($nomesIntermedios) && !is_string($nomesIntermedios)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($nomesIntermedios)), __LINE__);
        }
        if (is_null($nomesIntermedios) || (is_array($nomesIntermedios) && empty($nomesIntermedios))) {
            unset($this->NomesIntermedios);
        } else {
            $this->NomesIntermedios = $nomesIntermedios;
        }
        return $this;
    }
    /**
     * Get Notas 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 getNotas()
    {
        return isset($this->Notas) ? $this->Notas : null;
    }
    /**
     * Set Notas 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 $notas
     * @return \StructType\ContactoERP
     */
    public function setNotas($notas = null)
    {
        // validation for constraint: string
        if (!is_null($notas) && !is_string($notas)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($notas)), __LINE__);
        }
        if (is_null($notas) || (is_array($notas) && empty($notas))) {
            unset($this->Notas);
        } else {
            $this->Notas = $notas;
        }
        return $this;
    }
    /**
     * Get NumContribuinte 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 getNumContribuinte()
    {
        return isset($this->NumContribuinte) ? $this->NumContribuinte : null;
    }
    /**
     * Set NumContribuinte 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 $numContribuinte
     * @return \StructType\ContactoERP
     */
    public function setNumContribuinte($numContribuinte = null)
    {
        // validation for constraint: string
        if (!is_null($numContribuinte) && !is_string($numContribuinte)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($numContribuinte)), __LINE__);
        }
        if (is_null($numContribuinte) || (is_array($numContribuinte) && empty($numContribuinte))) {
            unset($this->NumContribuinte);
        } else {
            $this->NumContribuinte = $numContribuinte;
        }
        return $this;
    }
    /**
     * Get OrigemContacto 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 getOrigemContacto()
    {
        return isset($this->OrigemContacto) ? $this->OrigemContacto : null;
    }
    /**
     * Set OrigemContacto 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 $origemContacto
     * @return \StructType\ContactoERP
     */
    public function setOrigemContacto($origemContacto = null)
    {
        // validation for constraint: string
        if (!is_null($origemContacto) && !is_string($origemContacto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($origemContacto)), __LINE__);
        }
        if (is_null($origemContacto) || (is_array($origemContacto) && empty($origemContacto))) {
            unset($this->OrigemContacto);
        } else {
            $this->OrigemContacto = $origemContacto;
        }
        return $this;
    }
    /**
     * Get 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 getPais()
    {
        return isset($this->Pais) ? $this->Pais : null;
    }
    /**
     * Set 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 $pais
     * @return \StructType\ContactoERP
     */
    public function setPais($pais = null)
    {
        // validation for constraint: string
        if (!is_null($pais) && !is_string($pais)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($pais)), __LINE__);
        }
        if (is_null($pais) || (is_array($pais) && empty($pais))) {
            unset($this->Pais);
        } else {
            $this->Pais = $pais;
        }
        return $this;
    }
    /**
     * Get PaisResid 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 getPaisResid()
    {
        return isset($this->PaisResid) ? $this->PaisResid : null;
    }
    /**
     * Set PaisResid 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 $paisResid
     * @return \StructType\ContactoERP
     */
    public function setPaisResid($paisResid = null)
    {
        // validation for constraint: string
        if (!is_null($paisResid) && !is_string($paisResid)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($paisResid)), __LINE__);
        }
        if (is_null($paisResid) || (is_array($paisResid) && empty($paisResid))) {
            unset($this->PaisResid);
        } else {
            $this->PaisResid = $paisResid;
        }
        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\ContactoERP
     */
    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\ContactoERP
     */
    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 SexoMasculino 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 bool|null
     */
    public function getSexoMasculino()
    {
        return isset($this->SexoMasculino) ? $this->SexoMasculino : null;
    }
    /**
     * Set SexoMasculino 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 bool $sexoMasculino
     * @return \StructType\ContactoERP
     */
    public function setSexoMasculino($sexoMasculino = null)
    {
        // validation for constraint: boolean
        if (!is_null($sexoMasculino) && !is_bool($sexoMasculino)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($sexoMasculino)), __LINE__);
        }
        if (is_null($sexoMasculino) || (is_array($sexoMasculino) && empty($sexoMasculino))) {
            unset($this->SexoMasculino);
        } else {
            $this->SexoMasculino = $sexoMasculino;
        }
        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\ContactoERP
     */
    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 Telefone2 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 getTelefone2()
    {
        return isset($this->Telefone2) ? $this->Telefone2 : null;
    }
    /**
     * Set Telefone2 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 $telefone2
     * @return \StructType\ContactoERP
     */
    public function setTelefone2($telefone2 = null)
    {
        // validation for constraint: string
        if (!is_null($telefone2) && !is_string($telefone2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($telefone2)), __LINE__);
        }
        if (is_null($telefone2) || (is_array($telefone2) && empty($telefone2))) {
            unset($this->Telefone2);
        } else {
            $this->Telefone2 = $telefone2;
        }
        return $this;
    }
    /**
     * Get TelefoneAssist 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 getTelefoneAssist()
    {
        return isset($this->TelefoneAssist) ? $this->TelefoneAssist : null;
    }
    /**
     * Set TelefoneAssist 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 $telefoneAssist
     * @return \StructType\ContactoERP
     */
    public function setTelefoneAssist($telefoneAssist = null)
    {
        // validation for constraint: string
        if (!is_null($telefoneAssist) && !is_string($telefoneAssist)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($telefoneAssist)), __LINE__);
        }
        if (is_null($telefoneAssist) || (is_array($telefoneAssist) && empty($telefoneAssist))) {
            unset($this->TelefoneAssist);
        } else {
            $this->TelefoneAssist = $telefoneAssist;
        }
        return $this;
    }
    /**
     * Get TelefoneResid 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 getTelefoneResid()
    {
        return isset($this->TelefoneResid) ? $this->TelefoneResid : null;
    }
    /**
     * Set TelefoneResid 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 $telefoneResid
     * @return \StructType\ContactoERP
     */
    public function setTelefoneResid($telefoneResid = null)
    {
        // validation for constraint: string
        if (!is_null($telefoneResid) && !is_string($telefoneResid)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($telefoneResid)), __LINE__);
        }
        if (is_null($telefoneResid) || (is_array($telefoneResid) && empty($telefoneResid))) {
            unset($this->TelefoneResid);
        } else {
            $this->TelefoneResid = $telefoneResid;
        }
        return $this;
    }
    /**
     * Get 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 getTelemovel()
    {
        return isset($this->Telemovel) ? $this->Telemovel : null;
    }
    /**
     * Set 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 $telemovel
     * @return \StructType\ContactoERP
     */
    public function setTelemovel($telemovel = null)
    {
        // validation for constraint: string
        if (!is_null($telemovel) && !is_string($telemovel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($telemovel)), __LINE__);
        }
        if (is_null($telemovel) || (is_array($telemovel) && empty($telemovel))) {
            unset($this->Telemovel);
        } else {
            $this->Telemovel = $telemovel;
        }
        return $this;
    }
    /**
     * Get TelemovelAssist 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 getTelemovelAssist()
    {
        return isset($this->TelemovelAssist) ? $this->TelemovelAssist : null;
    }
    /**
     * Set TelemovelAssist 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 $telemovelAssist
     * @return \StructType\ContactoERP
     */
    public function setTelemovelAssist($telemovelAssist = null)
    {
        // validation for constraint: string
        if (!is_null($telemovelAssist) && !is_string($telemovelAssist)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($telemovelAssist)), __LINE__);
        }
        if (is_null($telemovelAssist) || (is_array($telemovelAssist) && empty($telemovelAssist))) {
            unset($this->TelemovelAssist);
        } else {
            $this->TelemovelAssist = $telemovelAssist;
        }
        return $this;
    }
    /**
     * Get TemFilhos 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 bool|null
     */
    public function getTemFilhos()
    {
        return isset($this->TemFilhos) ? $this->TemFilhos : null;
    }
    /**
     * Set TemFilhos 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 bool $temFilhos
     * @return \StructType\ContactoERP
     */
    public function setTemFilhos($temFilhos = null)
    {
        // validation for constraint: boolean
        if (!is_null($temFilhos) && !is_bool($temFilhos)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($temFilhos)), __LINE__);
        }
        if (is_null($temFilhos) || (is_array($temFilhos) && empty($temFilhos))) {
            unset($this->TemFilhos);
        } else {
            $this->TemFilhos = $temFilhos;
        }
        return $this;
    }
    /**
     * Get Titulo 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 getTitulo()
    {
        return isset($this->Titulo) ? $this->Titulo : null;
    }
    /**
     * Set Titulo 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 $titulo
     * @return \StructType\ContactoERP
     */
    public function setTitulo($titulo = null)
    {
        // validation for constraint: string
        if (!is_null($titulo) && !is_string($titulo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($titulo)), __LINE__);
        }
        if (is_null($titulo) || (is_array($titulo) && empty($titulo))) {
            unset($this->Titulo);
        } else {
            $this->Titulo = $titulo;
        }
        return $this;
    }
    /**
     * Get TituloAssist 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 getTituloAssist()
    {
        return isset($this->TituloAssist) ? $this->TituloAssist : null;
    }
    /**
     * Set TituloAssist 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 $tituloAssist
     * @return \StructType\ContactoERP
     */
    public function setTituloAssist($tituloAssist = null)
    {
        // validation for constraint: string
        if (!is_null($tituloAssist) && !is_string($tituloAssist)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($tituloAssist)), __LINE__);
        }
        if (is_null($tituloAssist) || (is_array($tituloAssist) && empty($tituloAssist))) {
            unset($this->TituloAssist);
        } else {
            $this->TituloAssist = $tituloAssist;
        }
        return $this;
    }
    /**
     * Get UltimoNome 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 getUltimoNome()
    {
        return isset($this->UltimoNome) ? $this->UltimoNome : null;
    }
    /**
     * Set UltimoNome 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 $ultimoNome
     * @return \StructType\ContactoERP
     */
    public function setUltimoNome($ultimoNome = null)
    {
        // validation for constraint: string
        if (!is_null($ultimoNome) && !is_string($ultimoNome)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ultimoNome)), __LINE__);
        }
        if (is_null($ultimoNome) || (is_array($ultimoNome) && empty($ultimoNome))) {
            unset($this->UltimoNome);
        } else {
            $this->UltimoNome = $ultimoNome;
        }
        return $this;
    }
    /**
     * Get VersaoUltAct value
     * @return string|null
     */
    public function getVersaoUltAct()
    {
        return $this->VersaoUltAct;
    }
    /**
     * Set VersaoUltAct value
     * @param string $versaoUltAct
     * @return \StructType\ContactoERP
     */
    public function setVersaoUltAct($versaoUltAct = null)
    {
        // validation for constraint: string
        if (!is_null($versaoUltAct) && !is_string($versaoUltAct)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($versaoUltAct)), __LINE__);
        }
        $this->VersaoUltAct = $versaoUltAct;
        return $this;
    }
    /**
     * Get Zona 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 getZona()
    {
        return isset($this->Zona) ? $this->Zona : null;
    }
    /**
     * Set Zona 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 $zona
     * @return \StructType\ContactoERP
     */
    public function setZona($zona = null)
    {
        // validation for constraint: string
        if (!is_null($zona) && !is_string($zona)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($zona)), __LINE__);
        }
        if (is_null($zona) || (is_array($zona) && empty($zona))) {
            unset($this->Zona);
        } else {
            $this->Zona = $zona;
        }
        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\ContactoERP
     */
    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__;
    }
}
