<?php

namespace CfcalSasieSDK\Entity;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for SectionSignature Entity
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:SectionSignature
 * @subpackage Structs
 */
class SectionSignature extends ObjetPublicSaisieEnLigneBase
{
    /**
     * The SignatureEmprunteurs
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \CfcalSasieSDK\Entity\SignatureEmprunteurs
     */
    public $SignatureEmprunteurs;
    /**
     * The CodeContactAssistanceParcoursSignature1
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $CodeContactAssistanceParcoursSignature1;
    /**
     * The CodeContactAssistanceParcoursSignature2
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $CodeContactAssistanceParcoursSignature2;
    /**
     * The IdentifiantUtilisateurAssistanceParcoursSignature1
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $IdentifiantUtilisateurAssistanceParcoursSignature1;
    /**
     * The IdentifiantUtilisateurAssistanceParcoursSignature2
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $IdentifiantUtilisateurAssistanceParcoursSignature2;
    /**
     * The NumeroDossierParcoursSignature
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NumeroDossierParcoursSignature;
    /**
     * The EstEnAccordConventionIntermediation
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $EstEnAccordConventionIntermediation;
    /**
     * The EmailContactCourtier1
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $EmailContactCourtier1;
    /**
     * The EmailContactCourtier2
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $EmailContactCourtier2;
    /**
     * The LibelleMarque
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $LibelleMarque;
    /**
     * Constructor method for SectionSignature
     * @uses SectionSignature::setSignatureEmprunteurs()
     * @uses SectionSignature::setCodeContactAssistanceParcoursSignature1()
     * @uses SectionSignature::setCodeContactAssistanceParcoursSignature2()
     * @uses SectionSignature::setIdentifiantUtilisateurAssistanceParcoursSignature1()
     * @uses SectionSignature::setIdentifiantUtilisateurAssistanceParcoursSignature2()
     * @uses SectionSignature::setNumeroDossierParcoursSignature()
     * @uses SectionSignature::setEstEnAccordConventionIntermediation()
     * @uses SectionSignature::setEmailContactCourtier1()
     * @uses SectionSignature::setEmailContactCourtier2()
     * @uses SectionSignature::setLibelleMarque()
     * @param \CfcalSasieSDK\Entity\SignatureEmprunteurs $signatureEmprunteurs
     * @param int $codeContactAssistanceParcoursSignature1
     * @param int $codeContactAssistanceParcoursSignature2
     * @param string $identifiantUtilisateurAssistanceParcoursSignature1
     * @param string $identifiantUtilisateurAssistanceParcoursSignature2
     * @param string $numeroDossierParcoursSignature
     * @param bool $estEnAccordConventionIntermediation
     * @param string $emailContactCourtier1
     * @param string $emailContactCourtier2
     * @param string $libelleMarque
     */
    public function __construct(\CfcalSasieSDK\Entity\SignatureEmprunteurs $signatureEmprunteurs = null, $codeContactAssistanceParcoursSignature1 = null, $codeContactAssistanceParcoursSignature2 = null, $identifiantUtilisateurAssistanceParcoursSignature1 = null, $identifiantUtilisateurAssistanceParcoursSignature2 = null, $numeroDossierParcoursSignature = null, $estEnAccordConventionIntermediation = null, $emailContactCourtier1 = null, $emailContactCourtier2 = null, $libelleMarque = null)
    {
        $this
            ->setSignatureEmprunteurs($signatureEmprunteurs)
            ->setCodeContactAssistanceParcoursSignature1($codeContactAssistanceParcoursSignature1)
            ->setCodeContactAssistanceParcoursSignature2($codeContactAssistanceParcoursSignature2)
            ->setIdentifiantUtilisateurAssistanceParcoursSignature1($identifiantUtilisateurAssistanceParcoursSignature1)
            ->setIdentifiantUtilisateurAssistanceParcoursSignature2($identifiantUtilisateurAssistanceParcoursSignature2)
            ->setNumeroDossierParcoursSignature($numeroDossierParcoursSignature)
            ->setEstEnAccordConventionIntermediation($estEnAccordConventionIntermediation)
            ->setEmailContactCourtier1($emailContactCourtier1)
            ->setEmailContactCourtier2($emailContactCourtier2)
            ->setLibelleMarque($libelleMarque);
    }
    /**
     * Get SignatureEmprunteurs 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 \CfcalSasieSDK\Entity\SignatureEmprunteurs|null
     */
    public function getSignatureEmprunteurs()
    {
        return isset($this->SignatureEmprunteurs) ? $this->SignatureEmprunteurs : null;
    }
    /**
     * Set SignatureEmprunteurs 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 \CfcalSasieSDK\Entity\SignatureEmprunteurs $signatureEmprunteurs
     * @return \CfcalSasieSDK\Entity\SectionSignature
     */
    public function setSignatureEmprunteurs(\CfcalSasieSDK\Entity\SignatureEmprunteurs $signatureEmprunteurs = null)
    {
        if (is_null($signatureEmprunteurs) || (is_array($signatureEmprunteurs) && empty($signatureEmprunteurs))) {
            unset($this->SignatureEmprunteurs);
        } else {
            $this->SignatureEmprunteurs = $signatureEmprunteurs;
        }
        return $this;
    }
    /**
     * Get CodeContactAssistanceParcoursSignature1 value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return int|null
     */
    public function getCodeContactAssistanceParcoursSignature1()
    {
        return isset($this->CodeContactAssistanceParcoursSignature1) ? $this->CodeContactAssistanceParcoursSignature1 : null;
    }
    /**
     * Set CodeContactAssistanceParcoursSignature1 value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param int $codeContactAssistanceParcoursSignature1
     * @return \CfcalSasieSDK\Entity\SectionSignature
     */
    public function setCodeContactAssistanceParcoursSignature1($codeContactAssistanceParcoursSignature1 = null)
    {
        // validation for constraint: int
        if (!is_null($codeContactAssistanceParcoursSignature1) && !(is_int($codeContactAssistanceParcoursSignature1) || ctype_digit($codeContactAssistanceParcoursSignature1))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($codeContactAssistanceParcoursSignature1, true), gettype($codeContactAssistanceParcoursSignature1)), __LINE__);
        }
        if (is_null($codeContactAssistanceParcoursSignature1) || (is_array($codeContactAssistanceParcoursSignature1) && empty($codeContactAssistanceParcoursSignature1))) {
            unset($this->CodeContactAssistanceParcoursSignature1);
        } else {
            $this->CodeContactAssistanceParcoursSignature1 = $codeContactAssistanceParcoursSignature1;
        }
        return $this;
    }
    /**
     * Get CodeContactAssistanceParcoursSignature2 value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return int|null
     */
    public function getCodeContactAssistanceParcoursSignature2()
    {
        return isset($this->CodeContactAssistanceParcoursSignature2) ? $this->CodeContactAssistanceParcoursSignature2 : null;
    }
    /**
     * Set CodeContactAssistanceParcoursSignature2 value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param int $codeContactAssistanceParcoursSignature2
     * @return \CfcalSasieSDK\Entity\SectionSignature
     */
    public function setCodeContactAssistanceParcoursSignature2($codeContactAssistanceParcoursSignature2 = null)
    {
        // validation for constraint: int
        if (!is_null($codeContactAssistanceParcoursSignature2) && !(is_int($codeContactAssistanceParcoursSignature2) || ctype_digit($codeContactAssistanceParcoursSignature2))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($codeContactAssistanceParcoursSignature2, true), gettype($codeContactAssistanceParcoursSignature2)), __LINE__);
        }
        if (is_null($codeContactAssistanceParcoursSignature2) || (is_array($codeContactAssistanceParcoursSignature2) && empty($codeContactAssistanceParcoursSignature2))) {
            unset($this->CodeContactAssistanceParcoursSignature2);
        } else {
            $this->CodeContactAssistanceParcoursSignature2 = $codeContactAssistanceParcoursSignature2;
        }
        return $this;
    }
    /**
     * Get IdentifiantUtilisateurAssistanceParcoursSignature1 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 getIdentifiantUtilisateurAssistanceParcoursSignature1()
    {
        return isset($this->IdentifiantUtilisateurAssistanceParcoursSignature1) ? $this->IdentifiantUtilisateurAssistanceParcoursSignature1 : null;
    }
    /**
     * Set IdentifiantUtilisateurAssistanceParcoursSignature1 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 $identifiantUtilisateurAssistanceParcoursSignature1
     * @return \CfcalSasieSDK\Entity\SectionSignature
     */
    public function setIdentifiantUtilisateurAssistanceParcoursSignature1($identifiantUtilisateurAssistanceParcoursSignature1 = null)
    {
        // validation for constraint: string
        if (!is_null($identifiantUtilisateurAssistanceParcoursSignature1) && !is_string($identifiantUtilisateurAssistanceParcoursSignature1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($identifiantUtilisateurAssistanceParcoursSignature1, true), gettype($identifiantUtilisateurAssistanceParcoursSignature1)), __LINE__);
        }
        if (is_null($identifiantUtilisateurAssistanceParcoursSignature1) || (is_array($identifiantUtilisateurAssistanceParcoursSignature1) && empty($identifiantUtilisateurAssistanceParcoursSignature1))) {
            unset($this->IdentifiantUtilisateurAssistanceParcoursSignature1);
        } else {
            $this->IdentifiantUtilisateurAssistanceParcoursSignature1 = $identifiantUtilisateurAssistanceParcoursSignature1;
        }
        return $this;
    }
    /**
     * Get IdentifiantUtilisateurAssistanceParcoursSignature2 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 getIdentifiantUtilisateurAssistanceParcoursSignature2()
    {
        return isset($this->IdentifiantUtilisateurAssistanceParcoursSignature2) ? $this->IdentifiantUtilisateurAssistanceParcoursSignature2 : null;
    }
    /**
     * Set IdentifiantUtilisateurAssistanceParcoursSignature2 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 $identifiantUtilisateurAssistanceParcoursSignature2
     * @return \CfcalSasieSDK\Entity\SectionSignature
     */
    public function setIdentifiantUtilisateurAssistanceParcoursSignature2($identifiantUtilisateurAssistanceParcoursSignature2 = null)
    {
        // validation for constraint: string
        if (!is_null($identifiantUtilisateurAssistanceParcoursSignature2) && !is_string($identifiantUtilisateurAssistanceParcoursSignature2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($identifiantUtilisateurAssistanceParcoursSignature2, true), gettype($identifiantUtilisateurAssistanceParcoursSignature2)), __LINE__);
        }
        if (is_null($identifiantUtilisateurAssistanceParcoursSignature2) || (is_array($identifiantUtilisateurAssistanceParcoursSignature2) && empty($identifiantUtilisateurAssistanceParcoursSignature2))) {
            unset($this->IdentifiantUtilisateurAssistanceParcoursSignature2);
        } else {
            $this->IdentifiantUtilisateurAssistanceParcoursSignature2 = $identifiantUtilisateurAssistanceParcoursSignature2;
        }
        return $this;
    }
    /**
     * Get NumeroDossierParcoursSignature 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 getNumeroDossierParcoursSignature()
    {
        return isset($this->NumeroDossierParcoursSignature) ? $this->NumeroDossierParcoursSignature : null;
    }
    /**
     * Set NumeroDossierParcoursSignature 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 $numeroDossierParcoursSignature
     * @return \CfcalSasieSDK\Entity\SectionSignature
     */
    public function setNumeroDossierParcoursSignature($numeroDossierParcoursSignature = null)
    {
        // validation for constraint: string
        if (!is_null($numeroDossierParcoursSignature) && !is_string($numeroDossierParcoursSignature)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($numeroDossierParcoursSignature, true), gettype($numeroDossierParcoursSignature)), __LINE__);
        }
        if (is_null($numeroDossierParcoursSignature) || (is_array($numeroDossierParcoursSignature) && empty($numeroDossierParcoursSignature))) {
            unset($this->NumeroDossierParcoursSignature);
        } else {
            $this->NumeroDossierParcoursSignature = $numeroDossierParcoursSignature;
        }
        return $this;
    }
    /**
     * Get EstEnAccordConventionIntermediation value
     * @return bool|null
     */
    public function getEstEnAccordConventionIntermediation()
    {
        return $this->EstEnAccordConventionIntermediation;
    }
    /**
     * Set EstEnAccordConventionIntermediation value
     * @param bool $estEnAccordConventionIntermediation
     * @return \CfcalSasieSDK\Entity\SectionSignature
     */
    public function setEstEnAccordConventionIntermediation($estEnAccordConventionIntermediation = null)
    {
        // validation for constraint: boolean
        if (!is_null($estEnAccordConventionIntermediation) && !is_bool($estEnAccordConventionIntermediation)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($estEnAccordConventionIntermediation, true), gettype($estEnAccordConventionIntermediation)), __LINE__);
        }
        $this->EstEnAccordConventionIntermediation = $estEnAccordConventionIntermediation;
        return $this;
    }
    /**
     * Get EmailContactCourtier1 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 getEmailContactCourtier1()
    {
        return isset($this->EmailContactCourtier1) ? $this->EmailContactCourtier1 : null;
    }
    /**
     * Set EmailContactCourtier1 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 $emailContactCourtier1
     * @return \CfcalSasieSDK\Entity\SectionSignature
     */
    public function setEmailContactCourtier1($emailContactCourtier1 = null)
    {
        // validation for constraint: string
        if (!is_null($emailContactCourtier1) && !is_string($emailContactCourtier1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($emailContactCourtier1, true), gettype($emailContactCourtier1)), __LINE__);
        }
        if (is_null($emailContactCourtier1) || (is_array($emailContactCourtier1) && empty($emailContactCourtier1))) {
            unset($this->EmailContactCourtier1);
        } else {
            $this->EmailContactCourtier1 = $emailContactCourtier1;
        }
        return $this;
    }
    /**
     * Get EmailContactCourtier2 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 getEmailContactCourtier2()
    {
        return isset($this->EmailContactCourtier2) ? $this->EmailContactCourtier2 : null;
    }
    /**
     * Set EmailContactCourtier2 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 $emailContactCourtier2
     * @return \CfcalSasieSDK\Entity\SectionSignature
     */
    public function setEmailContactCourtier2($emailContactCourtier2 = null)
    {
        // validation for constraint: string
        if (!is_null($emailContactCourtier2) && !is_string($emailContactCourtier2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($emailContactCourtier2, true), gettype($emailContactCourtier2)), __LINE__);
        }
        if (is_null($emailContactCourtier2) || (is_array($emailContactCourtier2) && empty($emailContactCourtier2))) {
            unset($this->EmailContactCourtier2);
        } else {
            $this->EmailContactCourtier2 = $emailContactCourtier2;
        }
        return $this;
    }
    /**
     * Get LibelleMarque 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 getLibelleMarque()
    {
        return isset($this->LibelleMarque) ? $this->LibelleMarque : null;
    }
    /**
     * Set LibelleMarque 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 $libelleMarque
     * @return \CfcalSasieSDK\Entity\SectionSignature
     */
    public function setLibelleMarque($libelleMarque = null)
    {
        // validation for constraint: string
        if (!is_null($libelleMarque) && !is_string($libelleMarque)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($libelleMarque, true), gettype($libelleMarque)), __LINE__);
        }
        if (is_null($libelleMarque) || (is_array($libelleMarque) && empty($libelleMarque))) {
            unset($this->LibelleMarque);
        } else {
            $this->LibelleMarque = $libelleMarque;
        }
        return $this;
    }
}
