<?php
use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for UserAddressData Parameters
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:UserAddressData
 * @subpackage Structs
 */
class UserAddressData extends AbstractStructBase
{
    /**
     * The BranchFocus
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $BranchFocus;
    /**
     * The BusCount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $BusCount;
    /**
     * The CTSConnection
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CTSConnection;
    /**
     * The Category
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Category;
    /**
     * The CategoryAccess
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CategoryAccess;
    /**
     * The City
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $City;
    /**
     * The CityTourCount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $CityTourCount;
    /**
     * The CityTourDestination
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CityTourDestination;
    /**
     * The CompanyName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CompanyName;
    /**
     * The ContactOrigin
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ContactOrigin;
    /**
     * The ContactOriginText
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ContactOriginText;
    /**
     * The ContactPersonData
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var ContactPersonData
     */
    public $ContactPersonData;
    /**
     * The Country
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Country;
    /**
     * The DebitorClass
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DebitorClass;
    /**
     * The DeliveryCity
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DeliveryCity;
    /**
     * The DeliveryCompanyName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DeliveryCompanyName;
    /**
     * The DeliveryCountry
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DeliveryCountry;
    /**
     * The DeliveryStreet
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DeliveryStreet;
    /**
     * The DeliveryZipCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DeliveryZipCode;
    /**
     * The Edition
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $Edition;
    /**
     * The EmployeeMemberCount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $EmployeeMemberCount;
    /**
     * The Homepage
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Homepage;
    /**
     * The HotelRoomCount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $HotelRoomCount;
    /**
     * The HotelStars
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $HotelStars;
    /**
     * The Interests
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Interests;
    /**
     * The Interior
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Interior;
    /**
     * The InvoiceCity
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $InvoiceCity;
    /**
     * The InvoiceCompanyName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $InvoiceCompanyName;
    /**
     * The InvoiceCountry
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $InvoiceCountry;
    /**
     * The InvoiceStreet
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $InvoiceStreet;
    /**
     * The InvoiceZipCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $InvoiceZipCode;
    /**
     * The LastTermsAndConditionAcknowledgement
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $LastTermsAndConditionAcknowledgement;
    /**
     * The Newsletter
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Newsletter;
    /**
     * The Password
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Password;
    /**
     * The ShortMessage
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ShortMessage;
    /**
     * The Street
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Street;
    /**
     * The TaskArea
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TaskArea;
    /**
     * The TypeFunctional
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TypeFunctional;
    /**
     * The TypeOrganisational
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TypeOrganisational;
    /**
     * The TypeOrganisationalText
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TypeOrganisationalText;
    /**
     * The UserGroup
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UserGroup;
    /**
     * The Zipcode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Zipcode;
    /**
     * Constructor method for UserAddressData
     * @uses UserAddressData::setBranchFocus()
     * @uses UserAddressData::setBusCount()
     * @uses UserAddressData::setCTSConnection()
     * @uses UserAddressData::setCategory()
     * @uses UserAddressData::setCategoryAccess()
     * @uses UserAddressData::setCity()
     * @uses UserAddressData::setCityTourCount()
     * @uses UserAddressData::setCityTourDestination()
     * @uses UserAddressData::setCompanyName()
     * @uses UserAddressData::setContactOrigin()
     * @uses UserAddressData::setContactOriginText()
     * @uses UserAddressData::setContactPersonData()
     * @uses UserAddressData::setCountry()
     * @uses UserAddressData::setDebitorClass()
     * @uses UserAddressData::setDeliveryCity()
     * @uses UserAddressData::setDeliveryCompanyName()
     * @uses UserAddressData::setDeliveryCountry()
     * @uses UserAddressData::setDeliveryStreet()
     * @uses UserAddressData::setDeliveryZipCode()
     * @uses UserAddressData::setEdition()
     * @uses UserAddressData::setEmployeeMemberCount()
     * @uses UserAddressData::setHomepage()
     * @uses UserAddressData::setHotelRoomCount()
     * @uses UserAddressData::setHotelStars()
     * @uses UserAddressData::setInterests()
     * @uses UserAddressData::setInterior()
     * @uses UserAddressData::setInvoiceCity()
     * @uses UserAddressData::setInvoiceCompanyName()
     * @uses UserAddressData::setInvoiceCountry()
     * @uses UserAddressData::setInvoiceStreet()
     * @uses UserAddressData::setInvoiceZipCode()
     * @uses UserAddressData::setLastTermsAndConditionAcknowledgement()
     * @uses UserAddressData::setNewsletter()
     * @uses UserAddressData::setPassword()
     * @uses UserAddressData::setShortMessage()
     * @uses UserAddressData::setStreet()
     * @uses UserAddressData::setTaskArea()
     * @uses UserAddressData::setTypeFunctional()
     * @uses UserAddressData::setTypeOrganisational()
     * @uses UserAddressData::setTypeOrganisationalText()
     * @uses UserAddressData::setUserGroup()
     * @uses UserAddressData::setZipcode()
     * @param string $branchFocus
     * @param int $busCount
     * @param bool $cTSConnection
     * @param string $category
     * @param string $categoryAccess
     * @param string $city
     * @param int $cityTourCount
     * @param string $cityTourDestination
     * @param string $companyName
     * @param string $contactOrigin
     * @param string $contactOriginText
     * @param ContactPersonData $contactPersonData
     * @param string $country
     * @param string $debitorClass
     * @param string $deliveryCity
     * @param string $deliveryCompanyName
     * @param string $deliveryCountry
     * @param string $deliveryStreet
     * @param string $deliveryZipCode
     * @param int $edition
     * @param int $employeeMemberCount
     * @param string $homepage
     * @param int $hotelRoomCount
     * @param string $hotelStars
     * @param string $interests
     * @param string $interior
     * @param string $invoiceCity
     * @param string $invoiceCompanyName
     * @param string $invoiceCountry
     * @param string $invoiceStreet
     * @param string $invoiceZipCode
     * @param string $lastTermsAndConditionAcknowledgement
     * @param string $newsletter
     * @param string $password
     * @param string $shortMessage
     * @param string $street
     * @param string $taskArea
     * @param string $typeFunctional
     * @param string $typeOrganisational
     * @param string $typeOrganisationalText
     * @param string $userGroup
     * @param string $zipcode
     */
    public function __construct($branchFocus = null, $busCount = null, $cTSConnection = null, $category = null, $categoryAccess = null, $city = null, $cityTourCount = null, $cityTourDestination = null, $companyName = null, $contactOrigin = null, $contactOriginText = null, ContactPersonData $contactPersonData = null, $country = null, $debitorClass = null, $deliveryCity = null, $deliveryCompanyName = null, $deliveryCountry = null, $deliveryStreet = null, $deliveryZipCode = null, $edition = null, $employeeMemberCount = null, $homepage = null, $hotelRoomCount = null, $hotelStars = null, $interests = null, $interior = null, $invoiceCity = null, $invoiceCompanyName = null, $invoiceCountry = null, $invoiceStreet = null, $invoiceZipCode = null, $lastTermsAndConditionAcknowledgement = null, $newsletter = null, $password = null, $shortMessage = null, $street = null, $taskArea = null, $typeFunctional = null, $typeOrganisational = null, $typeOrganisationalText = null, $userGroup = null, $zipcode = null)
    {
        $this
            ->setBranchFocus($branchFocus)
            ->setBusCount($busCount)
            ->setCTSConnection($cTSConnection)
            ->setCategory($category)
            ->setCategoryAccess($categoryAccess)
            ->setCity($city)
            ->setCityTourCount($cityTourCount)
            ->setCityTourDestination($cityTourDestination)
            ->setCompanyName($companyName)
            ->setContactOrigin($contactOrigin)
            ->setContactOriginText($contactOriginText)
            ->setContactPersonData($contactPersonData)
            ->setCountry($country)
            ->setDebitorClass($debitorClass)
            ->setDeliveryCity($deliveryCity)
            ->setDeliveryCompanyName($deliveryCompanyName)
            ->setDeliveryCountry($deliveryCountry)
            ->setDeliveryStreet($deliveryStreet)
            ->setDeliveryZipCode($deliveryZipCode)
            ->setEdition($edition)
            ->setEmployeeMemberCount($employeeMemberCount)
            ->setHomepage($homepage)
            ->setHotelRoomCount($hotelRoomCount)
            ->setHotelStars($hotelStars)
            ->setInterests($interests)
            ->setInterior($interior)
            ->setInvoiceCity($invoiceCity)
            ->setInvoiceCompanyName($invoiceCompanyName)
            ->setInvoiceCountry($invoiceCountry)
            ->setInvoiceStreet($invoiceStreet)
            ->setInvoiceZipCode($invoiceZipCode)
            ->setLastTermsAndConditionAcknowledgement($lastTermsAndConditionAcknowledgement)
            ->setNewsletter($newsletter)
            ->setPassword($password)
            ->setShortMessage($shortMessage)
            ->setStreet($street)
            ->setTaskArea($taskArea)
            ->setTypeFunctional($typeFunctional)
            ->setTypeOrganisational($typeOrganisational)
            ->setTypeOrganisationalText($typeOrganisationalText)
            ->setUserGroup($userGroup)
            ->setZipcode($zipcode);
    }
    /**
     * Get BranchFocus 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 getBranchFocus()
    {
        return isset($this->BranchFocus) ? $this->BranchFocus : null;
    }
    /**
     * Set BranchFocus 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 $branchFocus
     * @return UserAddressData
     */
    public function setBranchFocus($branchFocus = null)
    {
        // validation for constraint: string
        if (!is_null($branchFocus) && !is_string($branchFocus)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($branchFocus, true), gettype($branchFocus)), __LINE__);
        }
        if (is_null($branchFocus) || (is_array($branchFocus) && empty($branchFocus))) {
            unset($this->BranchFocus);
        } else {
            $this->BranchFocus = $branchFocus;
        }
        return $this;
    }
    /**
     * Get BusCount 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 getBusCount()
    {
        return isset($this->BusCount) ? $this->BusCount : null;
    }
    /**
     * Set BusCount 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 $busCount
     * @return UserAddressData
     */
    public function setBusCount($busCount = null)
    {
        // validation for constraint: int
        if (!is_null($busCount) && !(is_int($busCount) || ctype_digit($busCount))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($busCount, true), gettype($busCount)), __LINE__);
        }
        if (is_null($busCount) || (is_array($busCount) && empty($busCount))) {
            unset($this->BusCount);
        } else {
            $this->BusCount = $busCount;
        }
        return $this;
    }
    /**
     * Get CTSConnection 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 getCTSConnection()
    {
        return isset($this->CTSConnection) ? $this->CTSConnection : null;
    }
    /**
     * Set CTSConnection 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 $cTSConnection
     * @return UserAddressData
     */
    public function setCTSConnection($cTSConnection = null)
    {
        // validation for constraint: boolean
        if (!is_null($cTSConnection) && !is_bool($cTSConnection)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($cTSConnection, true), gettype($cTSConnection)), __LINE__);
        }
        if (is_null($cTSConnection) || (is_array($cTSConnection) && empty($cTSConnection))) {
            unset($this->CTSConnection);
        } else {
            $this->CTSConnection = $cTSConnection;
        }
        return $this;
    }
    /**
     * Get Category 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 getCategory()
    {
        return isset($this->Category) ? $this->Category : null;
    }
    /**
     * Set Category 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 $category
     * @return UserAddressData
     */
    public function setCategory($category = null)
    {
        // validation for constraint: string
        if (!is_null($category) && !is_string($category)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($category, true), gettype($category)), __LINE__);
        }
        if (is_null($category) || (is_array($category) && empty($category))) {
            unset($this->Category);
        } else {
            $this->Category = $category;
        }
        return $this;
    }
    /**
     * Get CategoryAccess 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 getCategoryAccess()
    {
        return isset($this->CategoryAccess) ? $this->CategoryAccess : null;
    }
    /**
     * Set CategoryAccess 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 $categoryAccess
     * @return UserAddressData
     */
    public function setCategoryAccess($categoryAccess = null)
    {
        // validation for constraint: string
        if (!is_null($categoryAccess) && !is_string($categoryAccess)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($categoryAccess, true), gettype($categoryAccess)), __LINE__);
        }
        if (is_null($categoryAccess) || (is_array($categoryAccess) && empty($categoryAccess))) {
            unset($this->CategoryAccess);
        } else {
            $this->CategoryAccess = $categoryAccess;
        }
        return $this;
    }
    /**
     * Get City 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 getCity()
    {
        return isset($this->City) ? $this->City : null;
    }
    /**
     * Set City 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 $city
     * @return UserAddressData
     */
    public function setCity($city = null)
    {
        // validation for constraint: string
        if (!is_null($city) && !is_string($city)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($city, true), gettype($city)), __LINE__);
        }
        if (is_null($city) || (is_array($city) && empty($city))) {
            unset($this->City);
        } else {
            $this->City = $city;
        }
        return $this;
    }
    /**
     * Get CityTourCount 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 getCityTourCount()
    {
        return isset($this->CityTourCount) ? $this->CityTourCount : null;
    }
    /**
     * Set CityTourCount 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 $cityTourCount
     * @return UserAddressData
     */
    public function setCityTourCount($cityTourCount = null)
    {
        // validation for constraint: int
        if (!is_null($cityTourCount) && !(is_int($cityTourCount) || ctype_digit($cityTourCount))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($cityTourCount, true), gettype($cityTourCount)), __LINE__);
        }
        if (is_null($cityTourCount) || (is_array($cityTourCount) && empty($cityTourCount))) {
            unset($this->CityTourCount);
        } else {
            $this->CityTourCount = $cityTourCount;
        }
        return $this;
    }
    /**
     * Get CityTourDestination 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 getCityTourDestination()
    {
        return isset($this->CityTourDestination) ? $this->CityTourDestination : null;
    }
    /**
     * Set CityTourDestination 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 $cityTourDestination
     * @return UserAddressData
     */
    public function setCityTourDestination($cityTourDestination = null)
    {
        // validation for constraint: string
        if (!is_null($cityTourDestination) && !is_string($cityTourDestination)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($cityTourDestination, true), gettype($cityTourDestination)), __LINE__);
        }
        if (is_null($cityTourDestination) || (is_array($cityTourDestination) && empty($cityTourDestination))) {
            unset($this->CityTourDestination);
        } else {
            $this->CityTourDestination = $cityTourDestination;
        }
        return $this;
    }
    /**
     * Get CompanyName 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 getCompanyName()
    {
        return isset($this->CompanyName) ? $this->CompanyName : null;
    }
    /**
     * Set CompanyName 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 $companyName
     * @return UserAddressData
     */
    public function setCompanyName($companyName = null)
    {
        // validation for constraint: string
        if (!is_null($companyName) && !is_string($companyName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($companyName, true), gettype($companyName)), __LINE__);
        }
        if (is_null($companyName) || (is_array($companyName) && empty($companyName))) {
            unset($this->CompanyName);
        } else {
            $this->CompanyName = $companyName;
        }
        return $this;
    }
    /**
     * Get ContactOrigin 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 getContactOrigin()
    {
        return isset($this->ContactOrigin) ? $this->ContactOrigin : null;
    }
    /**
     * Set ContactOrigin 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 $contactOrigin
     * @return UserAddressData
     */
    public function setContactOrigin($contactOrigin = null)
    {
        // validation for constraint: string
        if (!is_null($contactOrigin) && !is_string($contactOrigin)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($contactOrigin, true), gettype($contactOrigin)), __LINE__);
        }
        if (is_null($contactOrigin) || (is_array($contactOrigin) && empty($contactOrigin))) {
            unset($this->ContactOrigin);
        } else {
            $this->ContactOrigin = $contactOrigin;
        }
        return $this;
    }
    /**
     * Get ContactOriginText 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 getContactOriginText()
    {
        return isset($this->ContactOriginText) ? $this->ContactOriginText : null;
    }
    /**
     * Set ContactOriginText 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 $contactOriginText
     * @return UserAddressData
     */
    public function setContactOriginText($contactOriginText = null)
    {
        // validation for constraint: string
        if (!is_null($contactOriginText) && !is_string($contactOriginText)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($contactOriginText, true), gettype($contactOriginText)), __LINE__);
        }
        if (is_null($contactOriginText) || (is_array($contactOriginText) && empty($contactOriginText))) {
            unset($this->ContactOriginText);
        } else {
            $this->ContactOriginText = $contactOriginText;
        }
        return $this;
    }
    /**
     * Get ContactPersonData 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 ContactPersonData|null
     */
    public function getContactPersonData()
    {
        return isset($this->ContactPersonData) ? $this->ContactPersonData : null;
    }
    /**
     * Set ContactPersonData 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 ContactPersonData $contactPersonData
     * @return UserAddressData
     */
    public function setContactPersonData(ContactPersonData $contactPersonData = null)
    {
        if (is_null($contactPersonData) || (is_array($contactPersonData) && empty($contactPersonData))) {
            unset($this->ContactPersonData);
        } else {
            $this->ContactPersonData = $contactPersonData;
        }
        return $this;
    }
    /**
     * Get Country 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 getCountry()
    {
        return isset($this->Country) ? $this->Country : null;
    }
    /**
     * Set Country 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 $country
     * @return UserAddressData
     */
    public function setCountry($country = null)
    {
        // validation for constraint: string
        if (!is_null($country) && !is_string($country)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($country, true), gettype($country)), __LINE__);
        }
        if (is_null($country) || (is_array($country) && empty($country))) {
            unset($this->Country);
        } else {
            $this->Country = $country;
        }
        return $this;
    }
    /**
     * Get DebitorClass 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 getDebitorClass()
    {
        return isset($this->DebitorClass) ? $this->DebitorClass : null;
    }
    /**
     * Set DebitorClass 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 $debitorClass
     * @return UserAddressData
     */
    public function setDebitorClass($debitorClass = null)
    {
        // validation for constraint: string
        if (!is_null($debitorClass) && !is_string($debitorClass)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($debitorClass, true), gettype($debitorClass)), __LINE__);
        }
        if (is_null($debitorClass) || (is_array($debitorClass) && empty($debitorClass))) {
            unset($this->DebitorClass);
        } else {
            $this->DebitorClass = $debitorClass;
        }
        return $this;
    }
    /**
     * Get DeliveryCity 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 getDeliveryCity()
    {
        return isset($this->DeliveryCity) ? $this->DeliveryCity : null;
    }
    /**
     * Set DeliveryCity 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 $deliveryCity
     * @return UserAddressData
     */
    public function setDeliveryCity($deliveryCity = null)
    {
        // validation for constraint: string
        if (!is_null($deliveryCity) && !is_string($deliveryCity)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($deliveryCity, true), gettype($deliveryCity)), __LINE__);
        }
        if (is_null($deliveryCity) || (is_array($deliveryCity) && empty($deliveryCity))) {
            unset($this->DeliveryCity);
        } else {
            $this->DeliveryCity = $deliveryCity;
        }
        return $this;
    }
    /**
     * Get DeliveryCompanyName 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 getDeliveryCompanyName()
    {
        return isset($this->DeliveryCompanyName) ? $this->DeliveryCompanyName : null;
    }
    /**
     * Set DeliveryCompanyName 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 $deliveryCompanyName
     * @return UserAddressData
     */
    public function setDeliveryCompanyName($deliveryCompanyName = null)
    {
        // validation for constraint: string
        if (!is_null($deliveryCompanyName) && !is_string($deliveryCompanyName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($deliveryCompanyName, true), gettype($deliveryCompanyName)), __LINE__);
        }
        if (is_null($deliveryCompanyName) || (is_array($deliveryCompanyName) && empty($deliveryCompanyName))) {
            unset($this->DeliveryCompanyName);
        } else {
            $this->DeliveryCompanyName = $deliveryCompanyName;
        }
        return $this;
    }
    /**
     * Get DeliveryCountry 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 getDeliveryCountry()
    {
        return isset($this->DeliveryCountry) ? $this->DeliveryCountry : null;
    }
    /**
     * Set DeliveryCountry 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 $deliveryCountry
     * @return UserAddressData
     */
    public function setDeliveryCountry($deliveryCountry = null)
    {
        // validation for constraint: string
        if (!is_null($deliveryCountry) && !is_string($deliveryCountry)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($deliveryCountry, true), gettype($deliveryCountry)), __LINE__);
        }
        if (is_null($deliveryCountry) || (is_array($deliveryCountry) && empty($deliveryCountry))) {
            unset($this->DeliveryCountry);
        } else {
            $this->DeliveryCountry = $deliveryCountry;
        }
        return $this;
    }
    /**
     * Get DeliveryStreet 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 getDeliveryStreet()
    {
        return isset($this->DeliveryStreet) ? $this->DeliveryStreet : null;
    }
    /**
     * Set DeliveryStreet 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 $deliveryStreet
     * @return UserAddressData
     */
    public function setDeliveryStreet($deliveryStreet = null)
    {
        // validation for constraint: string
        if (!is_null($deliveryStreet) && !is_string($deliveryStreet)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($deliveryStreet, true), gettype($deliveryStreet)), __LINE__);
        }
        if (is_null($deliveryStreet) || (is_array($deliveryStreet) && empty($deliveryStreet))) {
            unset($this->DeliveryStreet);
        } else {
            $this->DeliveryStreet = $deliveryStreet;
        }
        return $this;
    }
    /**
     * Get DeliveryZipCode 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 getDeliveryZipCode()
    {
        return isset($this->DeliveryZipCode) ? $this->DeliveryZipCode : null;
    }
    /**
     * Set DeliveryZipCode 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 $deliveryZipCode
     * @return UserAddressData
     */
    public function setDeliveryZipCode($deliveryZipCode = null)
    {
        // validation for constraint: string
        if (!is_null($deliveryZipCode) && !is_string($deliveryZipCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($deliveryZipCode, true), gettype($deliveryZipCode)), __LINE__);
        }
        if (is_null($deliveryZipCode) || (is_array($deliveryZipCode) && empty($deliveryZipCode))) {
            unset($this->DeliveryZipCode);
        } else {
            $this->DeliveryZipCode = $deliveryZipCode;
        }
        return $this;
    }
    /**
     * Get Edition 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 getEdition()
    {
        return isset($this->Edition) ? $this->Edition : null;
    }
    /**
     * Set Edition 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 $edition
     * @return UserAddressData
     */
    public function setEdition($edition = null)
    {
        // validation for constraint: int
        if (!is_null($edition) && !(is_int($edition) || ctype_digit($edition))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($edition, true), gettype($edition)), __LINE__);
        }
        if (is_null($edition) || (is_array($edition) && empty($edition))) {
            unset($this->Edition);
        } else {
            $this->Edition = $edition;
        }
        return $this;
    }
    /**
     * Get EmployeeMemberCount 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 getEmployeeMemberCount()
    {
        return isset($this->EmployeeMemberCount) ? $this->EmployeeMemberCount : null;
    }
    /**
     * Set EmployeeMemberCount 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 $employeeMemberCount
     * @return UserAddressData
     */
    public function setEmployeeMemberCount($employeeMemberCount = null)
    {
        // validation for constraint: int
        if (!is_null($employeeMemberCount) && !(is_int($employeeMemberCount) || ctype_digit($employeeMemberCount))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($employeeMemberCount, true), gettype($employeeMemberCount)), __LINE__);
        }
        if (is_null($employeeMemberCount) || (is_array($employeeMemberCount) && empty($employeeMemberCount))) {
            unset($this->EmployeeMemberCount);
        } else {
            $this->EmployeeMemberCount = $employeeMemberCount;
        }
        return $this;
    }
    /**
     * Get Homepage 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 getHomepage()
    {
        return isset($this->Homepage) ? $this->Homepage : null;
    }
    /**
     * Set Homepage 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 $homepage
     * @return UserAddressData
     */
    public function setHomepage($homepage = null)
    {
        // validation for constraint: string
        if (!is_null($homepage) && !is_string($homepage)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($homepage, true), gettype($homepage)), __LINE__);
        }
        if (is_null($homepage) || (is_array($homepage) && empty($homepage))) {
            unset($this->Homepage);
        } else {
            $this->Homepage = $homepage;
        }
        return $this;
    }
    /**
     * Get HotelRoomCount 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 getHotelRoomCount()
    {
        return isset($this->HotelRoomCount) ? $this->HotelRoomCount : null;
    }
    /**
     * Set HotelRoomCount 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 $hotelRoomCount
     * @return UserAddressData
     */
    public function setHotelRoomCount($hotelRoomCount = null)
    {
        // validation for constraint: int
        if (!is_null($hotelRoomCount) && !(is_int($hotelRoomCount) || ctype_digit($hotelRoomCount))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($hotelRoomCount, true), gettype($hotelRoomCount)), __LINE__);
        }
        if (is_null($hotelRoomCount) || (is_array($hotelRoomCount) && empty($hotelRoomCount))) {
            unset($this->HotelRoomCount);
        } else {
            $this->HotelRoomCount = $hotelRoomCount;
        }
        return $this;
    }
    /**
     * Get HotelStars 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 getHotelStars()
    {
        return isset($this->HotelStars) ? $this->HotelStars : null;
    }
    /**
     * Set HotelStars 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 $hotelStars
     * @return UserAddressData
     */
    public function setHotelStars($hotelStars = null)
    {
        // validation for constraint: string
        if (!is_null($hotelStars) && !is_string($hotelStars)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($hotelStars, true), gettype($hotelStars)), __LINE__);
        }
        if (is_null($hotelStars) || (is_array($hotelStars) && empty($hotelStars))) {
            unset($this->HotelStars);
        } else {
            $this->HotelStars = $hotelStars;
        }
        return $this;
    }
    /**
     * Get Interests 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 getInterests()
    {
        return isset($this->Interests) ? $this->Interests : null;
    }
    /**
     * Set Interests 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 $interests
     * @return UserAddressData
     */
    public function setInterests($interests = null)
    {
        // validation for constraint: string
        if (!is_null($interests) && !is_string($interests)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($interests, true), gettype($interests)), __LINE__);
        }
        if (is_null($interests) || (is_array($interests) && empty($interests))) {
            unset($this->Interests);
        } else {
            $this->Interests = $interests;
        }
        return $this;
    }
    /**
     * Get Interior 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 getInterior()
    {
        return isset($this->Interior) ? $this->Interior : null;
    }
    /**
     * Set Interior 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 $interior
     * @return UserAddressData
     */
    public function setInterior($interior = null)
    {
        // validation for constraint: string
        if (!is_null($interior) && !is_string($interior)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($interior, true), gettype($interior)), __LINE__);
        }
        if (is_null($interior) || (is_array($interior) && empty($interior))) {
            unset($this->Interior);
        } else {
            $this->Interior = $interior;
        }
        return $this;
    }
    /**
     * Get InvoiceCity 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 getInvoiceCity()
    {
        return isset($this->InvoiceCity) ? $this->InvoiceCity : null;
    }
    /**
     * Set InvoiceCity 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 $invoiceCity
     * @return UserAddressData
     */
    public function setInvoiceCity($invoiceCity = null)
    {
        // validation for constraint: string
        if (!is_null($invoiceCity) && !is_string($invoiceCity)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($invoiceCity, true), gettype($invoiceCity)), __LINE__);
        }
        if (is_null($invoiceCity) || (is_array($invoiceCity) && empty($invoiceCity))) {
            unset($this->InvoiceCity);
        } else {
            $this->InvoiceCity = $invoiceCity;
        }
        return $this;
    }
    /**
     * Get InvoiceCompanyName 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 getInvoiceCompanyName()
    {
        return isset($this->InvoiceCompanyName) ? $this->InvoiceCompanyName : null;
    }
    /**
     * Set InvoiceCompanyName 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 $invoiceCompanyName
     * @return UserAddressData
     */
    public function setInvoiceCompanyName($invoiceCompanyName = null)
    {
        // validation for constraint: string
        if (!is_null($invoiceCompanyName) && !is_string($invoiceCompanyName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($invoiceCompanyName, true), gettype($invoiceCompanyName)), __LINE__);
        }
        if (is_null($invoiceCompanyName) || (is_array($invoiceCompanyName) && empty($invoiceCompanyName))) {
            unset($this->InvoiceCompanyName);
        } else {
            $this->InvoiceCompanyName = $invoiceCompanyName;
        }
        return $this;
    }
    /**
     * Get InvoiceCountry 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 getInvoiceCountry()
    {
        return isset($this->InvoiceCountry) ? $this->InvoiceCountry : null;
    }
    /**
     * Set InvoiceCountry 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 $invoiceCountry
     * @return UserAddressData
     */
    public function setInvoiceCountry($invoiceCountry = null)
    {
        // validation for constraint: string
        if (!is_null($invoiceCountry) && !is_string($invoiceCountry)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($invoiceCountry, true), gettype($invoiceCountry)), __LINE__);
        }
        if (is_null($invoiceCountry) || (is_array($invoiceCountry) && empty($invoiceCountry))) {
            unset($this->InvoiceCountry);
        } else {
            $this->InvoiceCountry = $invoiceCountry;
        }
        return $this;
    }
    /**
     * Get InvoiceStreet 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 getInvoiceStreet()
    {
        return isset($this->InvoiceStreet) ? $this->InvoiceStreet : null;
    }
    /**
     * Set InvoiceStreet 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 $invoiceStreet
     * @return UserAddressData
     */
    public function setInvoiceStreet($invoiceStreet = null)
    {
        // validation for constraint: string
        if (!is_null($invoiceStreet) && !is_string($invoiceStreet)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($invoiceStreet, true), gettype($invoiceStreet)), __LINE__);
        }
        if (is_null($invoiceStreet) || (is_array($invoiceStreet) && empty($invoiceStreet))) {
            unset($this->InvoiceStreet);
        } else {
            $this->InvoiceStreet = $invoiceStreet;
        }
        return $this;
    }
    /**
     * Get InvoiceZipCode 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 getInvoiceZipCode()
    {
        return isset($this->InvoiceZipCode) ? $this->InvoiceZipCode : null;
    }
    /**
     * Set InvoiceZipCode 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 $invoiceZipCode
     * @return UserAddressData
     */
    public function setInvoiceZipCode($invoiceZipCode = null)
    {
        // validation for constraint: string
        if (!is_null($invoiceZipCode) && !is_string($invoiceZipCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($invoiceZipCode, true), gettype($invoiceZipCode)), __LINE__);
        }
        if (is_null($invoiceZipCode) || (is_array($invoiceZipCode) && empty($invoiceZipCode))) {
            unset($this->InvoiceZipCode);
        } else {
            $this->InvoiceZipCode = $invoiceZipCode;
        }
        return $this;
    }
    /**
     * Get LastTermsAndConditionAcknowledgement 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 getLastTermsAndConditionAcknowledgement()
    {
        return isset($this->LastTermsAndConditionAcknowledgement) ? $this->LastTermsAndConditionAcknowledgement : null;
    }
    /**
     * Set LastTermsAndConditionAcknowledgement 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 $lastTermsAndConditionAcknowledgement
     * @return UserAddressData
     */
    public function setLastTermsAndConditionAcknowledgement($lastTermsAndConditionAcknowledgement = null)
    {
        // validation for constraint: string
        if (!is_null($lastTermsAndConditionAcknowledgement) && !is_string($lastTermsAndConditionAcknowledgement)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($lastTermsAndConditionAcknowledgement, true), gettype($lastTermsAndConditionAcknowledgement)), __LINE__);
        }
        if (is_null($lastTermsAndConditionAcknowledgement) || (is_array($lastTermsAndConditionAcknowledgement) && empty($lastTermsAndConditionAcknowledgement))) {
            unset($this->LastTermsAndConditionAcknowledgement);
        } else {
            $this->LastTermsAndConditionAcknowledgement = $lastTermsAndConditionAcknowledgement;
        }
        return $this;
    }
    /**
     * Get 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 string|null
     */
    public function getNewsletter()
    {
        return isset($this->Newsletter) ? $this->Newsletter : null;
    }
    /**
     * Set 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 string $newsletter
     * @return UserAddressData
     */
    public function setNewsletter($newsletter = null)
    {
        // validation for constraint: string
        if (!is_null($newsletter) && !is_string($newsletter)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($newsletter, true), gettype($newsletter)), __LINE__);
        }
        if (is_null($newsletter) || (is_array($newsletter) && empty($newsletter))) {
            unset($this->Newsletter);
        } else {
            $this->Newsletter = $newsletter;
        }
        return $this;
    }
    /**
     * Get Password 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 getPassword()
    {
        return isset($this->Password) ? $this->Password : null;
    }
    /**
     * Set Password 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 $password
     * @return UserAddressData
     */
    public function setPassword($password = null)
    {
        // validation for constraint: string
        if (!is_null($password) && !is_string($password)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($password, true), gettype($password)), __LINE__);
        }
        if (is_null($password) || (is_array($password) && empty($password))) {
            unset($this->Password);
        } else {
            $this->Password = $password;
        }
        return $this;
    }
    /**
     * Get ShortMessage 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 getShortMessage()
    {
        return isset($this->ShortMessage) ? $this->ShortMessage : null;
    }
    /**
     * Set ShortMessage 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 $shortMessage
     * @return UserAddressData
     */
    public function setShortMessage($shortMessage = null)
    {
        // validation for constraint: string
        if (!is_null($shortMessage) && !is_string($shortMessage)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($shortMessage, true), gettype($shortMessage)), __LINE__);
        }
        if (is_null($shortMessage) || (is_array($shortMessage) && empty($shortMessage))) {
            unset($this->ShortMessage);
        } else {
            $this->ShortMessage = $shortMessage;
        }
        return $this;
    }
    /**
     * Get Street 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 getStreet()
    {
        return isset($this->Street) ? $this->Street : null;
    }
    /**
     * Set Street 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 $street
     * @return UserAddressData
     */
    public function setStreet($street = null)
    {
        // validation for constraint: string
        if (!is_null($street) && !is_string($street)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($street, true), gettype($street)), __LINE__);
        }
        if (is_null($street) || (is_array($street) && empty($street))) {
            unset($this->Street);
        } else {
            $this->Street = $street;
        }
        return $this;
    }
    /**
     * Get TaskArea 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 getTaskArea()
    {
        return isset($this->TaskArea) ? $this->TaskArea : null;
    }
    /**
     * Set TaskArea 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 $taskArea
     * @return UserAddressData
     */
    public function setTaskArea($taskArea = null)
    {
        // validation for constraint: string
        if (!is_null($taskArea) && !is_string($taskArea)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($taskArea, true), gettype($taskArea)), __LINE__);
        }
        if (is_null($taskArea) || (is_array($taskArea) && empty($taskArea))) {
            unset($this->TaskArea);
        } else {
            $this->TaskArea = $taskArea;
        }
        return $this;
    }
    /**
     * Get TypeFunctional 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 getTypeFunctional()
    {
        return isset($this->TypeFunctional) ? $this->TypeFunctional : null;
    }
    /**
     * Set TypeFunctional 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 $typeFunctional
     * @return UserAddressData
     */
    public function setTypeFunctional($typeFunctional = null)
    {
        // validation for constraint: string
        if (!is_null($typeFunctional) && !is_string($typeFunctional)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($typeFunctional, true), gettype($typeFunctional)), __LINE__);
        }
        if (is_null($typeFunctional) || (is_array($typeFunctional) && empty($typeFunctional))) {
            unset($this->TypeFunctional);
        } else {
            $this->TypeFunctional = $typeFunctional;
        }
        return $this;
    }
    /**
     * Get TypeOrganisational 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 getTypeOrganisational()
    {
        return isset($this->TypeOrganisational) ? $this->TypeOrganisational : null;
    }
    /**
     * Set TypeOrganisational 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 $typeOrganisational
     * @return UserAddressData
     */
    public function setTypeOrganisational($typeOrganisational = null)
    {
        // validation for constraint: string
        if (!is_null($typeOrganisational) && !is_string($typeOrganisational)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($typeOrganisational, true), gettype($typeOrganisational)), __LINE__);
        }
        if (is_null($typeOrganisational) || (is_array($typeOrganisational) && empty($typeOrganisational))) {
            unset($this->TypeOrganisational);
        } else {
            $this->TypeOrganisational = $typeOrganisational;
        }
        return $this;
    }
    /**
     * Get TypeOrganisationalText 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 getTypeOrganisationalText()
    {
        return isset($this->TypeOrganisationalText) ? $this->TypeOrganisationalText : null;
    }
    /**
     * Set TypeOrganisationalText 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 $typeOrganisationalText
     * @return UserAddressData
     */
    public function setTypeOrganisationalText($typeOrganisationalText = null)
    {
        // validation for constraint: string
        if (!is_null($typeOrganisationalText) && !is_string($typeOrganisationalText)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($typeOrganisationalText, true), gettype($typeOrganisationalText)), __LINE__);
        }
        if (is_null($typeOrganisationalText) || (is_array($typeOrganisationalText) && empty($typeOrganisationalText))) {
            unset($this->TypeOrganisationalText);
        } else {
            $this->TypeOrganisationalText = $typeOrganisationalText;
        }
        return $this;
    }
    /**
     * Get UserGroup 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 getUserGroup()
    {
        return isset($this->UserGroup) ? $this->UserGroup : null;
    }
    /**
     * Set UserGroup 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 $userGroup
     * @return UserAddressData
     */
    public function setUserGroup($userGroup = null)
    {
        // validation for constraint: string
        if (!is_null($userGroup) && !is_string($userGroup)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($userGroup, true), gettype($userGroup)), __LINE__);
        }
        if (is_null($userGroup) || (is_array($userGroup) && empty($userGroup))) {
            unset($this->UserGroup);
        } else {
            $this->UserGroup = $userGroup;
        }
        return $this;
    }
    /**
     * Get Zipcode 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 getZipcode()
    {
        return isset($this->Zipcode) ? $this->Zipcode : null;
    }
    /**
     * Set Zipcode 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 $zipcode
     * @return UserAddressData
     */
    public function setZipcode($zipcode = null)
    {
        // validation for constraint: string
        if (!is_null($zipcode) && !is_string($zipcode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($zipcode, true), gettype($zipcode)), __LINE__);
        }
        if (is_null($zipcode) || (is_array($zipcode) && empty($zipcode))) {
            unset($this->Zipcode);
        } else {
            $this->Zipcode = $zipcode;
        }
        return $this;
    }
}
