<?php
use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for AddUpdateRequiredSkill StructType
 * @subpackage Structs
 */
class AddUpdateRequiredSkill extends AbstractStructBase
{
    /**
     * The toUsrId
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $toUsrId;
    /**
     * The requiredSkillId
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $requiredSkillId;
    /**
     * The prtyId
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $prtyId;
    /**
     * The profValueId
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $profValueId;
    /**
     * The notes
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $notes;
    /**
     * Constructor method for AddUpdateRequiredSkill
     * @uses AddUpdateRequiredSkill::setToUsrId()
     * @uses AddUpdateRequiredSkill::setRequiredSkillId()
     * @uses AddUpdateRequiredSkill::setPrtyId()
     * @uses AddUpdateRequiredSkill::setProfValueId()
     * @uses AddUpdateRequiredSkill::setNotes()
     * @param string $toUsrId
     * @param string $requiredSkillId
     * @param string $prtyId
     * @param string $profValueId
     * @param string $notes
     */
    public function __construct($toUsrId = null, $requiredSkillId = null, $prtyId = null, $profValueId = null, $notes = null)
    {
        $this
            ->setToUsrId($toUsrId)
            ->setRequiredSkillId($requiredSkillId)
            ->setPrtyId($prtyId)
            ->setProfValueId($profValueId)
            ->setNotes($notes);
    }
    /**
     * Get toUsrId value
     * @return string|null
     */
    public function getToUsrId()
    {
        return $this->toUsrId;
    }
    /**
     * Set toUsrId value
     * @param string $toUsrId
     * @return AddUpdateRequiredSkill
     */
    public function setToUsrId($toUsrId = null)
    {
        // validation for constraint: string
        if (!is_null($toUsrId) && !is_string($toUsrId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($toUsrId)), __LINE__);
        }
        $this->toUsrId = $toUsrId;
        return $this;
    }
    /**
     * Get requiredSkillId value
     * @return string|null
     */
    public function getRequiredSkillId()
    {
        return $this->requiredSkillId;
    }
    /**
     * Set requiredSkillId value
     * @param string $requiredSkillId
     * @return AddUpdateRequiredSkill
     */
    public function setRequiredSkillId($requiredSkillId = null)
    {
        // validation for constraint: string
        if (!is_null($requiredSkillId) && !is_string($requiredSkillId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($requiredSkillId)), __LINE__);
        }
        $this->requiredSkillId = $requiredSkillId;
        return $this;
    }
    /**
     * Get prtyId value
     * @return string|null
     */
    public function getPrtyId()
    {
        return $this->prtyId;
    }
    /**
     * Set prtyId value
     * @param string $prtyId
     * @return AddUpdateRequiredSkill
     */
    public function setPrtyId($prtyId = null)
    {
        // validation for constraint: string
        if (!is_null($prtyId) && !is_string($prtyId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($prtyId)), __LINE__);
        }
        $this->prtyId = $prtyId;
        return $this;
    }
    /**
     * Get profValueId value
     * @return string|null
     */
    public function getProfValueId()
    {
        return $this->profValueId;
    }
    /**
     * Set profValueId value
     * @param string $profValueId
     * @return AddUpdateRequiredSkill
     */
    public function setProfValueId($profValueId = null)
    {
        // validation for constraint: string
        if (!is_null($profValueId) && !is_string($profValueId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($profValueId)), __LINE__);
        }
        $this->profValueId = $profValueId;
        return $this;
    }
    /**
     * Get notes value
     * @return string|null
     */
    public function getNotes()
    {
        return $this->notes;
    }
    /**
     * Set notes value
     * @param string $notes
     * @return AddUpdateRequiredSkill
     */
    public function setNotes($notes = null)
    {
        // validation for constraint: string
        if (!is_null($notes) && !is_string($notes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($notes)), __LINE__);
        }
        $this->notes = $notes;
        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 AddUpdateRequiredSkill
     */
    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__;
    }
}
