<?php

namespace Model;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VerifiedAddress Model
 * @subpackage Structs
 */
class VerifiedAddress extends Address
{
    /**
     * The changedCompanyName
     * @var bool
     */
    public $changedCompanyName;
    /**
     * The changedCountryCode
     * @var bool
     */
    public $changedCountryCode;
    /**
     * The changedFloor
     * @var bool
     */
    public $changedFloor;
    /**
     * The changedLine1
     * @var bool
     */
    public $changedLine1;
    /**
     * The changedLine2
     * @var bool
     */
    public $changedLine2;
    /**
     * The changedLine3
     * @var bool
     */
    public $changedLine3;
    /**
     * The changedLine4
     * @var bool
     */
    public $changedLine4;
    /**
     * The changedPostCode
     * @var bool
     */
    public $changedPostCode;
    /**
     * The changedRegion
     * @var bool
     */
    public $changedRegion;
    /**
     * The changedStreetName
     * @var bool
     */
    public $changedStreetName;
    /**
     * The changedStreetNo
     * @var bool
     */
    public $changedStreetNo;
    /**
     * The changedStreetType
     * @var bool
     */
    public $changedStreetType;
    /**
     * The changedTown
     * @var bool
     */
    public $changedTown;
    /**
     * The status
     * Meta informations extracted from the WSDL
     * - nillable: true
     * @var string
     */
    public $status;
    /**
     * Constructor method for VerifiedAddress
     * @uses VerifiedAddress::setChangedCompanyName()
     * @uses VerifiedAddress::setChangedCountryCode()
     * @uses VerifiedAddress::setChangedFloor()
     * @uses VerifiedAddress::setChangedLine1()
     * @uses VerifiedAddress::setChangedLine2()
     * @uses VerifiedAddress::setChangedLine3()
     * @uses VerifiedAddress::setChangedLine4()
     * @uses VerifiedAddress::setChangedPostCode()
     * @uses VerifiedAddress::setChangedRegion()
     * @uses VerifiedAddress::setChangedStreetName()
     * @uses VerifiedAddress::setChangedStreetNo()
     * @uses VerifiedAddress::setChangedStreetType()
     * @uses VerifiedAddress::setChangedTown()
     * @uses VerifiedAddress::setStatus()
     * @param bool $changedCompanyName
     * @param bool $changedCountryCode
     * @param bool $changedFloor
     * @param bool $changedLine1
     * @param bool $changedLine2
     * @param bool $changedLine3
     * @param bool $changedLine4
     * @param bool $changedPostCode
     * @param bool $changedRegion
     * @param bool $changedStreetName
     * @param bool $changedStreetNo
     * @param bool $changedStreetType
     * @param bool $changedTown
     * @param string $status
     */
    public function __construct($changedCompanyName = null, $changedCountryCode = null, $changedFloor = null, $changedLine1 = null, $changedLine2 = null, $changedLine3 = null, $changedLine4 = null, $changedPostCode = null, $changedRegion = null, $changedStreetName = null, $changedStreetNo = null, $changedStreetType = null, $changedTown = null, $status = null)
    {
        $this
            ->setChangedCompanyName($changedCompanyName)
            ->setChangedCountryCode($changedCountryCode)
            ->setChangedFloor($changedFloor)
            ->setChangedLine1($changedLine1)
            ->setChangedLine2($changedLine2)
            ->setChangedLine3($changedLine3)
            ->setChangedLine4($changedLine4)
            ->setChangedPostCode($changedPostCode)
            ->setChangedRegion($changedRegion)
            ->setChangedStreetName($changedStreetName)
            ->setChangedStreetNo($changedStreetNo)
            ->setChangedStreetType($changedStreetType)
            ->setChangedTown($changedTown)
            ->setStatus($status);
    }
    /**
     * Get changedCompanyName value
     * @return bool|null
     */
    public function getChangedCompanyName()
    {
        return $this->changedCompanyName;
    }
    /**
     * Set changedCompanyName value
     * @param bool $changedCompanyName
     * @return \Model\VerifiedAddress
     */
    public function setChangedCompanyName($changedCompanyName = null)
    {
        // validation for constraint: boolean
        if (!is_null($changedCompanyName) && !is_bool($changedCompanyName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($changedCompanyName)), __LINE__);
        }
        $this->changedCompanyName = $changedCompanyName;
        return $this;
    }
    /**
     * Get changedCountryCode value
     * @return bool|null
     */
    public function getChangedCountryCode()
    {
        return $this->changedCountryCode;
    }
    /**
     * Set changedCountryCode value
     * @param bool $changedCountryCode
     * @return \Model\VerifiedAddress
     */
    public function setChangedCountryCode($changedCountryCode = null)
    {
        // validation for constraint: boolean
        if (!is_null($changedCountryCode) && !is_bool($changedCountryCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($changedCountryCode)), __LINE__);
        }
        $this->changedCountryCode = $changedCountryCode;
        return $this;
    }
    /**
     * Get changedFloor value
     * @return bool|null
     */
    public function getChangedFloor()
    {
        return $this->changedFloor;
    }
    /**
     * Set changedFloor value
     * @param bool $changedFloor
     * @return \Model\VerifiedAddress
     */
    public function setChangedFloor($changedFloor = null)
    {
        // validation for constraint: boolean
        if (!is_null($changedFloor) && !is_bool($changedFloor)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($changedFloor)), __LINE__);
        }
        $this->changedFloor = $changedFloor;
        return $this;
    }
    /**
     * Get changedLine1 value
     * @return bool|null
     */
    public function getChangedLine1()
    {
        return $this->changedLine1;
    }
    /**
     * Set changedLine1 value
     * @param bool $changedLine1
     * @return \Model\VerifiedAddress
     */
    public function setChangedLine1($changedLine1 = null)
    {
        // validation for constraint: boolean
        if (!is_null($changedLine1) && !is_bool($changedLine1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($changedLine1)), __LINE__);
        }
        $this->changedLine1 = $changedLine1;
        return $this;
    }
    /**
     * Get changedLine2 value
     * @return bool|null
     */
    public function getChangedLine2()
    {
        return $this->changedLine2;
    }
    /**
     * Set changedLine2 value
     * @param bool $changedLine2
     * @return \Model\VerifiedAddress
     */
    public function setChangedLine2($changedLine2 = null)
    {
        // validation for constraint: boolean
        if (!is_null($changedLine2) && !is_bool($changedLine2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($changedLine2)), __LINE__);
        }
        $this->changedLine2 = $changedLine2;
        return $this;
    }
    /**
     * Get changedLine3 value
     * @return bool|null
     */
    public function getChangedLine3()
    {
        return $this->changedLine3;
    }
    /**
     * Set changedLine3 value
     * @param bool $changedLine3
     * @return \Model\VerifiedAddress
     */
    public function setChangedLine3($changedLine3 = null)
    {
        // validation for constraint: boolean
        if (!is_null($changedLine3) && !is_bool($changedLine3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($changedLine3)), __LINE__);
        }
        $this->changedLine3 = $changedLine3;
        return $this;
    }
    /**
     * Get changedLine4 value
     * @return bool|null
     */
    public function getChangedLine4()
    {
        return $this->changedLine4;
    }
    /**
     * Set changedLine4 value
     * @param bool $changedLine4
     * @return \Model\VerifiedAddress
     */
    public function setChangedLine4($changedLine4 = null)
    {
        // validation for constraint: boolean
        if (!is_null($changedLine4) && !is_bool($changedLine4)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($changedLine4)), __LINE__);
        }
        $this->changedLine4 = $changedLine4;
        return $this;
    }
    /**
     * Get changedPostCode value
     * @return bool|null
     */
    public function getChangedPostCode()
    {
        return $this->changedPostCode;
    }
    /**
     * Set changedPostCode value
     * @param bool $changedPostCode
     * @return \Model\VerifiedAddress
     */
    public function setChangedPostCode($changedPostCode = null)
    {
        // validation for constraint: boolean
        if (!is_null($changedPostCode) && !is_bool($changedPostCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($changedPostCode)), __LINE__);
        }
        $this->changedPostCode = $changedPostCode;
        return $this;
    }
    /**
     * Get changedRegion value
     * @return bool|null
     */
    public function getChangedRegion()
    {
        return $this->changedRegion;
    }
    /**
     * Set changedRegion value
     * @param bool $changedRegion
     * @return \Model\VerifiedAddress
     */
    public function setChangedRegion($changedRegion = null)
    {
        // validation for constraint: boolean
        if (!is_null($changedRegion) && !is_bool($changedRegion)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($changedRegion)), __LINE__);
        }
        $this->changedRegion = $changedRegion;
        return $this;
    }
    /**
     * Get changedStreetName value
     * @return bool|null
     */
    public function getChangedStreetName()
    {
        return $this->changedStreetName;
    }
    /**
     * Set changedStreetName value
     * @param bool $changedStreetName
     * @return \Model\VerifiedAddress
     */
    public function setChangedStreetName($changedStreetName = null)
    {
        // validation for constraint: boolean
        if (!is_null($changedStreetName) && !is_bool($changedStreetName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($changedStreetName)), __LINE__);
        }
        $this->changedStreetName = $changedStreetName;
        return $this;
    }
    /**
     * Get changedStreetNo value
     * @return bool|null
     */
    public function getChangedStreetNo()
    {
        return $this->changedStreetNo;
    }
    /**
     * Set changedStreetNo value
     * @param bool $changedStreetNo
     * @return \Model\VerifiedAddress
     */
    public function setChangedStreetNo($changedStreetNo = null)
    {
        // validation for constraint: boolean
        if (!is_null($changedStreetNo) && !is_bool($changedStreetNo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($changedStreetNo)), __LINE__);
        }
        $this->changedStreetNo = $changedStreetNo;
        return $this;
    }
    /**
     * Get changedStreetType value
     * @return bool|null
     */
    public function getChangedStreetType()
    {
        return $this->changedStreetType;
    }
    /**
     * Set changedStreetType value
     * @param bool $changedStreetType
     * @return \Model\VerifiedAddress
     */
    public function setChangedStreetType($changedStreetType = null)
    {
        // validation for constraint: boolean
        if (!is_null($changedStreetType) && !is_bool($changedStreetType)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($changedStreetType)), __LINE__);
        }
        $this->changedStreetType = $changedStreetType;
        return $this;
    }
    /**
     * Get changedTown value
     * @return bool|null
     */
    public function getChangedTown()
    {
        return $this->changedTown;
    }
    /**
     * Set changedTown value
     * @param bool $changedTown
     * @return \Model\VerifiedAddress
     */
    public function setChangedTown($changedTown = null)
    {
        // validation for constraint: boolean
        if (!is_null($changedTown) && !is_bool($changedTown)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($changedTown)), __LINE__);
        }
        $this->changedTown = $changedTown;
        return $this;
    }
    /**
     * Get status value
     * @return string|null
     */
    public function getStatus()
    {
        return $this->status;
    }
    /**
     * Set status value
     * @param string $status
     * @return \Model\VerifiedAddress
     */
    public function setStatus($status = null)
    {
        // validation for constraint: string
        if (!is_null($status) && !is_string($status)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($status)), __LINE__);
        }
        $this->status = $status;
        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 \Model\VerifiedAddress
     */
    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__;
    }
}
