<?php

namespace \NineDotMedia\viapost-php;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for GetAddressesForPostcodeResponse StructType
 * @subpackage Structs
 */
class GetAddressesForPostcodeResponse extends AbstractStructBase
{
    /**
     * The GetAddressesForPostcodeResult
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var bool
     */
    public $GetAddressesForPostcodeResult;
    /**
     * The addresses
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \\NineDotMedia\viapost-php\ArrayOfPostalAddress
     */
    public $addresses;
    /**
     * The returnMessage
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $returnMessage;
    /**
     * Constructor method for GetAddressesForPostcodeResponse
     * @uses GetAddressesForPostcodeResponse::setGetAddressesForPostcodeResult()
     * @uses GetAddressesForPostcodeResponse::setAddresses()
     * @uses GetAddressesForPostcodeResponse::setReturnMessage()
     * @param bool $getAddressesForPostcodeResult
     * @param \\NineDotMedia\viapost-php\ArrayOfPostalAddress $addresses
     * @param string $returnMessage
     */
    public function __construct($getAddressesForPostcodeResult = null, \\NineDotMedia\viapost-php\ArrayOfPostalAddress $addresses = null, $returnMessage = null)
    {
        $this
            ->setGetAddressesForPostcodeResult($getAddressesForPostcodeResult)
            ->setAddresses($addresses)
            ->setReturnMessage($returnMessage);
    }
    /**
     * Get GetAddressesForPostcodeResult value
     * @return bool
     */
    public function getGetAddressesForPostcodeResult()
    {
        return $this->GetAddressesForPostcodeResult;
    }
    /**
     * Set GetAddressesForPostcodeResult value
     * @param bool $getAddressesForPostcodeResult
     * @return \\NineDotMedia\viapost-php\GetAddressesForPostcodeResponse
     */
    public function setGetAddressesForPostcodeResult($getAddressesForPostcodeResult = null)
    {
        // validation for constraint: boolean
        if (!is_null($getAddressesForPostcodeResult) && !is_bool($getAddressesForPostcodeResult)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($getAddressesForPostcodeResult, true), gettype($getAddressesForPostcodeResult)), __LINE__);
        }
        $this->GetAddressesForPostcodeResult = $getAddressesForPostcodeResult;
        return $this;
    }
    /**
     * Get addresses value
     * @return \\NineDotMedia\viapost-php\ArrayOfPostalAddress|null
     */
    public function getAddresses()
    {
        return $this->addresses;
    }
    /**
     * Set addresses value
     * @param \\NineDotMedia\viapost-php\ArrayOfPostalAddress $addresses
     * @return \\NineDotMedia\viapost-php\GetAddressesForPostcodeResponse
     */
    public function setAddresses(\\NineDotMedia\viapost-php\ArrayOfPostalAddress $addresses = null)
    {
        $this->addresses = $addresses;
        return $this;
    }
    /**
     * Get returnMessage value
     * @return string|null
     */
    public function getReturnMessage()
    {
        return $this->returnMessage;
    }
    /**
     * Set returnMessage value
     * @param string $returnMessage
     * @return \\NineDotMedia\viapost-php\GetAddressesForPostcodeResponse
     */
    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;
    }
}
