<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for BizResource.CalendarWeek StructType
 * @subpackage Structs
 */
class BizResource_CalendarWeek extends AnyEntity
{
    /**
     * The Friday
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Friday;
    /**
     * The Monday
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Monday;
    /**
     * The Saturday
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Saturday;
    /**
     * The Sunday
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Sunday;
    /**
     * The Thursday
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Thursday;
    /**
     * The Tuesday
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Tuesday;
    /**
     * The Wednesday
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Wednesday;
    /**
     * The WeekDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $WeekDate;
    /**
     * Constructor method for BizResource.CalendarWeek
     * @uses BizResource_CalendarWeek::setFriday()
     * @uses BizResource_CalendarWeek::setMonday()
     * @uses BizResource_CalendarWeek::setSaturday()
     * @uses BizResource_CalendarWeek::setSunday()
     * @uses BizResource_CalendarWeek::setThursday()
     * @uses BizResource_CalendarWeek::setTuesday()
     * @uses BizResource_CalendarWeek::setWednesday()
     * @uses BizResource_CalendarWeek::setWeekDate()
     * @param string $friday
     * @param string $monday
     * @param string $saturday
     * @param string $sunday
     * @param string $thursday
     * @param string $tuesday
     * @param string $wednesday
     * @param string $weekDate
     */
    public function __construct($friday = null, $monday = null, $saturday = null, $sunday = null, $thursday = null, $tuesday = null, $wednesday = null, $weekDate = null)
    {
        $this
            ->setFriday($friday)
            ->setMonday($monday)
            ->setSaturday($saturday)
            ->setSunday($sunday)
            ->setThursday($thursday)
            ->setTuesday($tuesday)
            ->setWednesday($wednesday)
            ->setWeekDate($weekDate);
    }
    /**
     * Get Friday 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 getFriday()
    {
        return isset($this->Friday) ? $this->Friday : null;
    }
    /**
     * Set Friday 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 $friday
     * @return \patest\StructType\BizResource_CalendarWeek
     */
    public function setFriday($friday = null)
    {
        // validation for constraint: string
        if (!is_null($friday) && !is_string($friday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($friday, true), gettype($friday)), __LINE__);
        }
        if (is_null($friday) || (is_array($friday) && empty($friday))) {
            unset($this->Friday);
        } else {
            $this->Friday = $friday;
        }
        return $this;
    }
    /**
     * Get Monday 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 getMonday()
    {
        return isset($this->Monday) ? $this->Monday : null;
    }
    /**
     * Set Monday 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 $monday
     * @return \patest\StructType\BizResource_CalendarWeek
     */
    public function setMonday($monday = null)
    {
        // validation for constraint: string
        if (!is_null($monday) && !is_string($monday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($monday, true), gettype($monday)), __LINE__);
        }
        if (is_null($monday) || (is_array($monday) && empty($monday))) {
            unset($this->Monday);
        } else {
            $this->Monday = $monday;
        }
        return $this;
    }
    /**
     * Get Saturday 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 getSaturday()
    {
        return isset($this->Saturday) ? $this->Saturday : null;
    }
    /**
     * Set Saturday 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 $saturday
     * @return \patest\StructType\BizResource_CalendarWeek
     */
    public function setSaturday($saturday = null)
    {
        // validation for constraint: string
        if (!is_null($saturday) && !is_string($saturday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($saturday, true), gettype($saturday)), __LINE__);
        }
        if (is_null($saturday) || (is_array($saturday) && empty($saturday))) {
            unset($this->Saturday);
        } else {
            $this->Saturday = $saturday;
        }
        return $this;
    }
    /**
     * Get Sunday 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 getSunday()
    {
        return isset($this->Sunday) ? $this->Sunday : null;
    }
    /**
     * Set Sunday 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 $sunday
     * @return \patest\StructType\BizResource_CalendarWeek
     */
    public function setSunday($sunday = null)
    {
        // validation for constraint: string
        if (!is_null($sunday) && !is_string($sunday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sunday, true), gettype($sunday)), __LINE__);
        }
        if (is_null($sunday) || (is_array($sunday) && empty($sunday))) {
            unset($this->Sunday);
        } else {
            $this->Sunday = $sunday;
        }
        return $this;
    }
    /**
     * Get Thursday 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 getThursday()
    {
        return isset($this->Thursday) ? $this->Thursday : null;
    }
    /**
     * Set Thursday 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 $thursday
     * @return \patest\StructType\BizResource_CalendarWeek
     */
    public function setThursday($thursday = null)
    {
        // validation for constraint: string
        if (!is_null($thursday) && !is_string($thursday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($thursday, true), gettype($thursday)), __LINE__);
        }
        if (is_null($thursday) || (is_array($thursday) && empty($thursday))) {
            unset($this->Thursday);
        } else {
            $this->Thursday = $thursday;
        }
        return $this;
    }
    /**
     * Get Tuesday 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 getTuesday()
    {
        return isset($this->Tuesday) ? $this->Tuesday : null;
    }
    /**
     * Set Tuesday 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 $tuesday
     * @return \patest\StructType\BizResource_CalendarWeek
     */
    public function setTuesday($tuesday = null)
    {
        // validation for constraint: string
        if (!is_null($tuesday) && !is_string($tuesday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($tuesday, true), gettype($tuesday)), __LINE__);
        }
        if (is_null($tuesday) || (is_array($tuesday) && empty($tuesday))) {
            unset($this->Tuesday);
        } else {
            $this->Tuesday = $tuesday;
        }
        return $this;
    }
    /**
     * Get Wednesday 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 getWednesday()
    {
        return isset($this->Wednesday) ? $this->Wednesday : null;
    }
    /**
     * Set Wednesday 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 $wednesday
     * @return \patest\StructType\BizResource_CalendarWeek
     */
    public function setWednesday($wednesday = null)
    {
        // validation for constraint: string
        if (!is_null($wednesday) && !is_string($wednesday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($wednesday, true), gettype($wednesday)), __LINE__);
        }
        if (is_null($wednesday) || (is_array($wednesday) && empty($wednesday))) {
            unset($this->Wednesday);
        } else {
            $this->Wednesday = $wednesday;
        }
        return $this;
    }
    /**
     * Get WeekDate 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 getWeekDate()
    {
        return isset($this->WeekDate) ? $this->WeekDate : null;
    }
    /**
     * Set WeekDate 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 $weekDate
     * @return \patest\StructType\BizResource_CalendarWeek
     */
    public function setWeekDate($weekDate = null)
    {
        // validation for constraint: string
        if (!is_null($weekDate) && !is_string($weekDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($weekDate, true), gettype($weekDate)), __LINE__);
        }
        if (is_null($weekDate) || (is_array($weekDate) && empty($weekDate))) {
            unset($this->WeekDate);
        } else {
            $this->WeekDate = $weekDate;
        }
        return $this;
    }
}
