<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Security.CurrentMasterOrganizationUnit StructType
 * @subpackage Structs
 */
class Security_CurrentMasterOrganizationUnit extends Security_CurrentOrganizationUnit
{
    /**
     * The Master_TotalMySellers
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $Master_TotalMySellers;
    /**
     * The Master_TotalMySuppliers
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $Master_TotalMySuppliers;
    /**
     * The Master_TotalSellers
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $Master_TotalSellers;
    /**
     * The Master_TotalSuppliers
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $Master_TotalSuppliers;
    /**
     * Constructor method for Security.CurrentMasterOrganizationUnit
     * @uses Security_CurrentMasterOrganizationUnit::setMaster_TotalMySellers()
     * @uses Security_CurrentMasterOrganizationUnit::setMaster_TotalMySuppliers()
     * @uses Security_CurrentMasterOrganizationUnit::setMaster_TotalSellers()
     * @uses Security_CurrentMasterOrganizationUnit::setMaster_TotalSuppliers()
     * @param int $master_TotalMySellers
     * @param int $master_TotalMySuppliers
     * @param int $master_TotalSellers
     * @param int $master_TotalSuppliers
     */
    public function __construct($master_TotalMySellers = null, $master_TotalMySuppliers = null, $master_TotalSellers = null, $master_TotalSuppliers = null)
    {
        $this
            ->setMaster_TotalMySellers($master_TotalMySellers)
            ->setMaster_TotalMySuppliers($master_TotalMySuppliers)
            ->setMaster_TotalSellers($master_TotalSellers)
            ->setMaster_TotalSuppliers($master_TotalSuppliers);
    }
    /**
     * Get Master_TotalMySellers 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 getMaster_TotalMySellers()
    {
        return isset($this->Master_TotalMySellers) ? $this->Master_TotalMySellers : null;
    }
    /**
     * Set Master_TotalMySellers 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 $master_TotalMySellers
     * @return \patest\StructType\Security_CurrentMasterOrganizationUnit
     */
    public function setMaster_TotalMySellers($master_TotalMySellers = null)
    {
        // validation for constraint: int
        if (!is_null($master_TotalMySellers) && !(is_int($master_TotalMySellers) || ctype_digit($master_TotalMySellers))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($master_TotalMySellers, true), gettype($master_TotalMySellers)), __LINE__);
        }
        if (is_null($master_TotalMySellers) || (is_array($master_TotalMySellers) && empty($master_TotalMySellers))) {
            unset($this->Master_TotalMySellers);
        } else {
            $this->Master_TotalMySellers = $master_TotalMySellers;
        }
        return $this;
    }
    /**
     * Get Master_TotalMySuppliers 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 getMaster_TotalMySuppliers()
    {
        return isset($this->Master_TotalMySuppliers) ? $this->Master_TotalMySuppliers : null;
    }
    /**
     * Set Master_TotalMySuppliers 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 $master_TotalMySuppliers
     * @return \patest\StructType\Security_CurrentMasterOrganizationUnit
     */
    public function setMaster_TotalMySuppliers($master_TotalMySuppliers = null)
    {
        // validation for constraint: int
        if (!is_null($master_TotalMySuppliers) && !(is_int($master_TotalMySuppliers) || ctype_digit($master_TotalMySuppliers))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($master_TotalMySuppliers, true), gettype($master_TotalMySuppliers)), __LINE__);
        }
        if (is_null($master_TotalMySuppliers) || (is_array($master_TotalMySuppliers) && empty($master_TotalMySuppliers))) {
            unset($this->Master_TotalMySuppliers);
        } else {
            $this->Master_TotalMySuppliers = $master_TotalMySuppliers;
        }
        return $this;
    }
    /**
     * Get Master_TotalSellers 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 getMaster_TotalSellers()
    {
        return isset($this->Master_TotalSellers) ? $this->Master_TotalSellers : null;
    }
    /**
     * Set Master_TotalSellers 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 $master_TotalSellers
     * @return \patest\StructType\Security_CurrentMasterOrganizationUnit
     */
    public function setMaster_TotalSellers($master_TotalSellers = null)
    {
        // validation for constraint: int
        if (!is_null($master_TotalSellers) && !(is_int($master_TotalSellers) || ctype_digit($master_TotalSellers))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($master_TotalSellers, true), gettype($master_TotalSellers)), __LINE__);
        }
        if (is_null($master_TotalSellers) || (is_array($master_TotalSellers) && empty($master_TotalSellers))) {
            unset($this->Master_TotalSellers);
        } else {
            $this->Master_TotalSellers = $master_TotalSellers;
        }
        return $this;
    }
    /**
     * Get Master_TotalSuppliers 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 getMaster_TotalSuppliers()
    {
        return isset($this->Master_TotalSuppliers) ? $this->Master_TotalSuppliers : null;
    }
    /**
     * Set Master_TotalSuppliers 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 $master_TotalSuppliers
     * @return \patest\StructType\Security_CurrentMasterOrganizationUnit
     */
    public function setMaster_TotalSuppliers($master_TotalSuppliers = null)
    {
        // validation for constraint: int
        if (!is_null($master_TotalSuppliers) && !(is_int($master_TotalSuppliers) || ctype_digit($master_TotalSuppliers))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($master_TotalSuppliers, true), gettype($master_TotalSuppliers)), __LINE__);
        }
        if (is_null($master_TotalSuppliers) || (is_array($master_TotalSuppliers) && empty($master_TotalSuppliers))) {
            unset($this->Master_TotalSuppliers);
        } else {
            $this->Master_TotalSuppliers = $master_TotalSuppliers;
        }
        return $this;
    }
}
