<?php

namespace \NineDotMedia\viapost-php;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for FindNearestQueryAddressResponse StructType
 * @subpackage Structs
 */
class FindNearestQueryAddressResponse extends AbstractStructBase
{
    /**
     * The FindNearestQueryAddressResult
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var bool
     */
    public $FindNearestQueryAddressResult;
    /**
     * The numberAddressesInResults
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $numberAddressesInResults;
    /**
     * The costOfSearch
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $costOfSearch;
    /**
     * The foundOrganisation
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $foundOrganisation;
    /**
     * The foundBuildingName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $foundBuildingName;
    /**
     * The foundBuildingNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $foundBuildingNumber;
    /**
     * The foundSubBuildingName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $foundSubBuildingName;
    /**
     * The foundThoroughfare
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $foundThoroughfare;
    /**
     * The foundLocality
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $foundLocality;
    /**
     * The foundPostTown
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $foundPostTown;
    /**
     * The foundPostCode
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $foundPostCode;
    /**
     * The returnMessage
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $returnMessage;
    /**
     * Constructor method for FindNearestQueryAddressResponse
     * @uses FindNearestQueryAddressResponse::setFindNearestQueryAddressResult()
     * @uses FindNearestQueryAddressResponse::setNumberAddressesInResults()
     * @uses FindNearestQueryAddressResponse::setCostOfSearch()
     * @uses FindNearestQueryAddressResponse::setFoundOrganisation()
     * @uses FindNearestQueryAddressResponse::setFoundBuildingName()
     * @uses FindNearestQueryAddressResponse::setFoundBuildingNumber()
     * @uses FindNearestQueryAddressResponse::setFoundSubBuildingName()
     * @uses FindNearestQueryAddressResponse::setFoundThoroughfare()
     * @uses FindNearestQueryAddressResponse::setFoundLocality()
     * @uses FindNearestQueryAddressResponse::setFoundPostTown()
     * @uses FindNearestQueryAddressResponse::setFoundPostCode()
     * @uses FindNearestQueryAddressResponse::setReturnMessage()
     * @param bool $findNearestQueryAddressResult
     * @param int $numberAddressesInResults
     * @param float $costOfSearch
     * @param string $foundOrganisation
     * @param string $foundBuildingName
     * @param string $foundBuildingNumber
     * @param string $foundSubBuildingName
     * @param string $foundThoroughfare
     * @param string $foundLocality
     * @param string $foundPostTown
     * @param string $foundPostCode
     * @param string $returnMessage
     */
    public function __construct($findNearestQueryAddressResult = null, $numberAddressesInResults = null, $costOfSearch = null, $foundOrganisation = null, $foundBuildingName = null, $foundBuildingNumber = null, $foundSubBuildingName = null, $foundThoroughfare = null, $foundLocality = null, $foundPostTown = null, $foundPostCode = null, $returnMessage = null)
    {
        $this
            ->setFindNearestQueryAddressResult($findNearestQueryAddressResult)
            ->setNumberAddressesInResults($numberAddressesInResults)
            ->setCostOfSearch($costOfSearch)
            ->setFoundOrganisation($foundOrganisation)
            ->setFoundBuildingName($foundBuildingName)
            ->setFoundBuildingNumber($foundBuildingNumber)
            ->setFoundSubBuildingName($foundSubBuildingName)
            ->setFoundThoroughfare($foundThoroughfare)
            ->setFoundLocality($foundLocality)
            ->setFoundPostTown($foundPostTown)
            ->setFoundPostCode($foundPostCode)
            ->setReturnMessage($returnMessage);
    }
    /**
     * Get FindNearestQueryAddressResult value
     * @return bool
     */
    public function getFindNearestQueryAddressResult()
    {
        return $this->FindNearestQueryAddressResult;
    }
    /**
     * Set FindNearestQueryAddressResult value
     * @param bool $findNearestQueryAddressResult
     * @return \\NineDotMedia\viapost-php\FindNearestQueryAddressResponse
     */
    public function setFindNearestQueryAddressResult($findNearestQueryAddressResult = null)
    {
        // validation for constraint: boolean
        if (!is_null($findNearestQueryAddressResult) && !is_bool($findNearestQueryAddressResult)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($findNearestQueryAddressResult, true), gettype($findNearestQueryAddressResult)), __LINE__);
        }
        $this->FindNearestQueryAddressResult = $findNearestQueryAddressResult;
        return $this;
    }
    /**
     * Get numberAddressesInResults value
     * @return int
     */
    public function getNumberAddressesInResults()
    {
        return $this->numberAddressesInResults;
    }
    /**
     * Set numberAddressesInResults value
     * @param int $numberAddressesInResults
     * @return \\NineDotMedia\viapost-php\FindNearestQueryAddressResponse
     */
    public function setNumberAddressesInResults($numberAddressesInResults = null)
    {
        // validation for constraint: int
        if (!is_null($numberAddressesInResults) && !(is_int($numberAddressesInResults) || ctype_digit($numberAddressesInResults))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($numberAddressesInResults, true), gettype($numberAddressesInResults)), __LINE__);
        }
        $this->numberAddressesInResults = $numberAddressesInResults;
        return $this;
    }
    /**
     * Get costOfSearch value
     * @return float
     */
    public function getCostOfSearch()
    {
        return $this->costOfSearch;
    }
    /**
     * Set costOfSearch value
     * @param float $costOfSearch
     * @return \\NineDotMedia\viapost-php\FindNearestQueryAddressResponse
     */
    public function setCostOfSearch($costOfSearch = null)
    {
        // validation for constraint: float
        if (!is_null($costOfSearch) && !(is_float($costOfSearch) || is_numeric($costOfSearch))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($costOfSearch, true), gettype($costOfSearch)), __LINE__);
        }
        $this->costOfSearch = $costOfSearch;
        return $this;
    }
    /**
     * Get foundOrganisation value
     * @return string|null
     */
    public function getFoundOrganisation()
    {
        return $this->foundOrganisation;
    }
    /**
     * Set foundOrganisation value
     * @param string $foundOrganisation
     * @return \\NineDotMedia\viapost-php\FindNearestQueryAddressResponse
     */
    public function setFoundOrganisation($foundOrganisation = null)
    {
        // validation for constraint: string
        if (!is_null($foundOrganisation) && !is_string($foundOrganisation)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($foundOrganisation, true), gettype($foundOrganisation)), __LINE__);
        }
        $this->foundOrganisation = $foundOrganisation;
        return $this;
    }
    /**
     * Get foundBuildingName value
     * @return string|null
     */
    public function getFoundBuildingName()
    {
        return $this->foundBuildingName;
    }
    /**
     * Set foundBuildingName value
     * @param string $foundBuildingName
     * @return \\NineDotMedia\viapost-php\FindNearestQueryAddressResponse
     */
    public function setFoundBuildingName($foundBuildingName = null)
    {
        // validation for constraint: string
        if (!is_null($foundBuildingName) && !is_string($foundBuildingName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($foundBuildingName, true), gettype($foundBuildingName)), __LINE__);
        }
        $this->foundBuildingName = $foundBuildingName;
        return $this;
    }
    /**
     * Get foundBuildingNumber value
     * @return string|null
     */
    public function getFoundBuildingNumber()
    {
        return $this->foundBuildingNumber;
    }
    /**
     * Set foundBuildingNumber value
     * @param string $foundBuildingNumber
     * @return \\NineDotMedia\viapost-php\FindNearestQueryAddressResponse
     */
    public function setFoundBuildingNumber($foundBuildingNumber = null)
    {
        // validation for constraint: string
        if (!is_null($foundBuildingNumber) && !is_string($foundBuildingNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($foundBuildingNumber, true), gettype($foundBuildingNumber)), __LINE__);
        }
        $this->foundBuildingNumber = $foundBuildingNumber;
        return $this;
    }
    /**
     * Get foundSubBuildingName value
     * @return string|null
     */
    public function getFoundSubBuildingName()
    {
        return $this->foundSubBuildingName;
    }
    /**
     * Set foundSubBuildingName value
     * @param string $foundSubBuildingName
     * @return \\NineDotMedia\viapost-php\FindNearestQueryAddressResponse
     */
    public function setFoundSubBuildingName($foundSubBuildingName = null)
    {
        // validation for constraint: string
        if (!is_null($foundSubBuildingName) && !is_string($foundSubBuildingName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($foundSubBuildingName, true), gettype($foundSubBuildingName)), __LINE__);
        }
        $this->foundSubBuildingName = $foundSubBuildingName;
        return $this;
    }
    /**
     * Get foundThoroughfare value
     * @return string|null
     */
    public function getFoundThoroughfare()
    {
        return $this->foundThoroughfare;
    }
    /**
     * Set foundThoroughfare value
     * @param string $foundThoroughfare
     * @return \\NineDotMedia\viapost-php\FindNearestQueryAddressResponse
     */
    public function setFoundThoroughfare($foundThoroughfare = null)
    {
        // validation for constraint: string
        if (!is_null($foundThoroughfare) && !is_string($foundThoroughfare)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($foundThoroughfare, true), gettype($foundThoroughfare)), __LINE__);
        }
        $this->foundThoroughfare = $foundThoroughfare;
        return $this;
    }
    /**
     * Get foundLocality value
     * @return string|null
     */
    public function getFoundLocality()
    {
        return $this->foundLocality;
    }
    /**
     * Set foundLocality value
     * @param string $foundLocality
     * @return \\NineDotMedia\viapost-php\FindNearestQueryAddressResponse
     */
    public function setFoundLocality($foundLocality = null)
    {
        // validation for constraint: string
        if (!is_null($foundLocality) && !is_string($foundLocality)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($foundLocality, true), gettype($foundLocality)), __LINE__);
        }
        $this->foundLocality = $foundLocality;
        return $this;
    }
    /**
     * Get foundPostTown value
     * @return string|null
     */
    public function getFoundPostTown()
    {
        return $this->foundPostTown;
    }
    /**
     * Set foundPostTown value
     * @param string $foundPostTown
     * @return \\NineDotMedia\viapost-php\FindNearestQueryAddressResponse
     */
    public function setFoundPostTown($foundPostTown = null)
    {
        // validation for constraint: string
        if (!is_null($foundPostTown) && !is_string($foundPostTown)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($foundPostTown, true), gettype($foundPostTown)), __LINE__);
        }
        $this->foundPostTown = $foundPostTown;
        return $this;
    }
    /**
     * Get foundPostCode value
     * @return string|null
     */
    public function getFoundPostCode()
    {
        return $this->foundPostCode;
    }
    /**
     * Set foundPostCode value
     * @param string $foundPostCode
     * @return \\NineDotMedia\viapost-php\FindNearestQueryAddressResponse
     */
    public function setFoundPostCode($foundPostCode = null)
    {
        // validation for constraint: string
        if (!is_null($foundPostCode) && !is_string($foundPostCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($foundPostCode, true), gettype($foundPostCode)), __LINE__);
        }
        $this->foundPostCode = $foundPostCode;
        return $this;
    }
    /**
     * Get returnMessage value
     * @return string|null
     */
    public function getReturnMessage()
    {
        return $this->returnMessage;
    }
    /**
     * Set returnMessage value
     * @param string $returnMessage
     * @return \\NineDotMedia\viapost-php\FindNearestQueryAddressResponse
     */
    public function setReturnMessage($returnMessage = null)
    {
        // validation for constraint: string
        if (!is_null($returnMessage) && !is_string($returnMessage)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($returnMessage, true), gettype($returnMessage)), __LINE__);
        }
        $this->returnMessage = $returnMessage;
        return $this;
    }
}
