<?php

namespace \Losc\CucmBundle\Model\Webservice\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for XGeoLocationPolicy StructType
 * @subpackage Structs
 */
class XGeoLocationPolicy extends AbstractStructBase
{
    /**
     * The name
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 50
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: false
     * @var string
     */
    public $name;
    /**
     * The country
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $country;
    /**
     * The description
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 255
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $description;
    /**
     * The nationalSubDivision
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 100
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $nationalSubDivision;
    /**
     * The district
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 255
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $district;
    /**
     * The communityName
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 255
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $communityName;
    /**
     * The cityDivision
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 255
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $cityDivision;
    /**
     * The neighbourhood
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 255
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $neighbourhood;
    /**
     * The street
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 255
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $street;
    /**
     * The leadingStreetDirection
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 50
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $leadingStreetDirection;
    /**
     * The trailingStreetSuffix
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 50
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $trailingStreetSuffix;
    /**
     * The streetSuffix
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 255
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $streetSuffix;
    /**
     * The houseNumber
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 16
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $houseNumber;
    /**
     * The houseNumberSuffix
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 100
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $houseNumberSuffix;
    /**
     * The landmark
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 255
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $landmark;
    /**
     * The location
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 255
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $location;
    /**
     * The floor
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 16
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $floor;
    /**
     * The occupantName
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 255
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $occupantName;
    /**
     * The postalCode
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 100
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $postalCode;
    /**
     * The relatedPolicies
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \\Losc\CucmBundle\Model\Webservice\StructType\RelatedPolicies
     */
    public $relatedPolicies;
    /**
     * Constructor method for XGeoLocationPolicy
     * @uses XGeoLocationPolicy::setName()
     * @uses XGeoLocationPolicy::setCountry()
     * @uses XGeoLocationPolicy::setDescription()
     * @uses XGeoLocationPolicy::setNationalSubDivision()
     * @uses XGeoLocationPolicy::setDistrict()
     * @uses XGeoLocationPolicy::setCommunityName()
     * @uses XGeoLocationPolicy::setCityDivision()
     * @uses XGeoLocationPolicy::setNeighbourhood()
     * @uses XGeoLocationPolicy::setStreet()
     * @uses XGeoLocationPolicy::setLeadingStreetDirection()
     * @uses XGeoLocationPolicy::setTrailingStreetSuffix()
     * @uses XGeoLocationPolicy::setStreetSuffix()
     * @uses XGeoLocationPolicy::setHouseNumber()
     * @uses XGeoLocationPolicy::setHouseNumberSuffix()
     * @uses XGeoLocationPolicy::setLandmark()
     * @uses XGeoLocationPolicy::setLocation()
     * @uses XGeoLocationPolicy::setFloor()
     * @uses XGeoLocationPolicy::setOccupantName()
     * @uses XGeoLocationPolicy::setPostalCode()
     * @uses XGeoLocationPolicy::setRelatedPolicies()
     * @param string $name
     * @param string $country
     * @param string $description
     * @param string $nationalSubDivision
     * @param string $district
     * @param string $communityName
     * @param string $cityDivision
     * @param string $neighbourhood
     * @param string $street
     * @param string $leadingStreetDirection
     * @param string $trailingStreetSuffix
     * @param string $streetSuffix
     * @param string $houseNumber
     * @param string $houseNumberSuffix
     * @param string $landmark
     * @param string $location
     * @param string $floor
     * @param string $occupantName
     * @param string $postalCode
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\RelatedPolicies $relatedPolicies
     */
    public function __construct($name = null, $country = null, $description = null, $nationalSubDivision = null, $district = null, $communityName = null, $cityDivision = null, $neighbourhood = null, $street = null, $leadingStreetDirection = null, $trailingStreetSuffix = null, $streetSuffix = null, $houseNumber = null, $houseNumberSuffix = null, $landmark = null, $location = null, $floor = null, $occupantName = null, $postalCode = null, \\Losc\CucmBundle\Model\Webservice\StructType\RelatedPolicies $relatedPolicies = null)
    {
        $this
            ->setName($name)
            ->setCountry($country)
            ->setDescription($description)
            ->setNationalSubDivision($nationalSubDivision)
            ->setDistrict($district)
            ->setCommunityName($communityName)
            ->setCityDivision($cityDivision)
            ->setNeighbourhood($neighbourhood)
            ->setStreet($street)
            ->setLeadingStreetDirection($leadingStreetDirection)
            ->setTrailingStreetSuffix($trailingStreetSuffix)
            ->setStreetSuffix($streetSuffix)
            ->setHouseNumber($houseNumber)
            ->setHouseNumberSuffix($houseNumberSuffix)
            ->setLandmark($landmark)
            ->setLocation($location)
            ->setFloor($floor)
            ->setOccupantName($occupantName)
            ->setPostalCode($postalCode)
            ->setRelatedPolicies($relatedPolicies);
    }
    /**
     * Get name value
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }
    /**
     * Set name value
     * @param string $name
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setName($name = null)
    {
        $this->name = $name;
        return $this;
    }
    /**
     * Get country value
     * @return string|null
     */
    public function getCountry()
    {
        return $this->country;
    }
    /**
     * Set country value
     * @param string $country
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setCountry($country = null)
    {
        $this->country = $country;
        return $this;
    }
    /**
     * Get description value
     * @return string|null
     */
    public function getDescription()
    {
        return $this->description;
    }
    /**
     * Set description value
     * @param string $description
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setDescription($description = null)
    {
        $this->description = $description;
        return $this;
    }
    /**
     * Get nationalSubDivision value
     * @return string|null
     */
    public function getNationalSubDivision()
    {
        return $this->nationalSubDivision;
    }
    /**
     * Set nationalSubDivision value
     * @param string $nationalSubDivision
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setNationalSubDivision($nationalSubDivision = null)
    {
        $this->nationalSubDivision = $nationalSubDivision;
        return $this;
    }
    /**
     * Get district value
     * @return string|null
     */
    public function getDistrict()
    {
        return $this->district;
    }
    /**
     * Set district value
     * @param string $district
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setDistrict($district = null)
    {
        $this->district = $district;
        return $this;
    }
    /**
     * Get communityName value
     * @return string|null
     */
    public function getCommunityName()
    {
        return $this->communityName;
    }
    /**
     * Set communityName value
     * @param string $communityName
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setCommunityName($communityName = null)
    {
        $this->communityName = $communityName;
        return $this;
    }
    /**
     * Get cityDivision value
     * @return string|null
     */
    public function getCityDivision()
    {
        return $this->cityDivision;
    }
    /**
     * Set cityDivision value
     * @param string $cityDivision
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setCityDivision($cityDivision = null)
    {
        $this->cityDivision = $cityDivision;
        return $this;
    }
    /**
     * Get neighbourhood value
     * @return string|null
     */
    public function getNeighbourhood()
    {
        return $this->neighbourhood;
    }
    /**
     * Set neighbourhood value
     * @param string $neighbourhood
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setNeighbourhood($neighbourhood = null)
    {
        $this->neighbourhood = $neighbourhood;
        return $this;
    }
    /**
     * Get street value
     * @return string|null
     */
    public function getStreet()
    {
        return $this->street;
    }
    /**
     * Set street value
     * @param string $street
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setStreet($street = null)
    {
        $this->street = $street;
        return $this;
    }
    /**
     * Get leadingStreetDirection value
     * @return string|null
     */
    public function getLeadingStreetDirection()
    {
        return $this->leadingStreetDirection;
    }
    /**
     * Set leadingStreetDirection value
     * @param string $leadingStreetDirection
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setLeadingStreetDirection($leadingStreetDirection = null)
    {
        $this->leadingStreetDirection = $leadingStreetDirection;
        return $this;
    }
    /**
     * Get trailingStreetSuffix value
     * @return string|null
     */
    public function getTrailingStreetSuffix()
    {
        return $this->trailingStreetSuffix;
    }
    /**
     * Set trailingStreetSuffix value
     * @param string $trailingStreetSuffix
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setTrailingStreetSuffix($trailingStreetSuffix = null)
    {
        $this->trailingStreetSuffix = $trailingStreetSuffix;
        return $this;
    }
    /**
     * Get streetSuffix value
     * @return string|null
     */
    public function getStreetSuffix()
    {
        return $this->streetSuffix;
    }
    /**
     * Set streetSuffix value
     * @param string $streetSuffix
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setStreetSuffix($streetSuffix = null)
    {
        $this->streetSuffix = $streetSuffix;
        return $this;
    }
    /**
     * Get houseNumber value
     * @return string|null
     */
    public function getHouseNumber()
    {
        return $this->houseNumber;
    }
    /**
     * Set houseNumber value
     * @param string $houseNumber
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setHouseNumber($houseNumber = null)
    {
        $this->houseNumber = $houseNumber;
        return $this;
    }
    /**
     * Get houseNumberSuffix value
     * @return string|null
     */
    public function getHouseNumberSuffix()
    {
        return $this->houseNumberSuffix;
    }
    /**
     * Set houseNumberSuffix value
     * @param string $houseNumberSuffix
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setHouseNumberSuffix($houseNumberSuffix = null)
    {
        $this->houseNumberSuffix = $houseNumberSuffix;
        return $this;
    }
    /**
     * Get landmark value
     * @return string|null
     */
    public function getLandmark()
    {
        return $this->landmark;
    }
    /**
     * Set landmark value
     * @param string $landmark
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setLandmark($landmark = null)
    {
        $this->landmark = $landmark;
        return $this;
    }
    /**
     * Get location value
     * @return string|null
     */
    public function getLocation()
    {
        return $this->location;
    }
    /**
     * Set location value
     * @param string $location
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setLocation($location = null)
    {
        $this->location = $location;
        return $this;
    }
    /**
     * Get floor value
     * @return string|null
     */
    public function getFloor()
    {
        return $this->floor;
    }
    /**
     * Set floor value
     * @param string $floor
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setFloor($floor = null)
    {
        $this->floor = $floor;
        return $this;
    }
    /**
     * Get occupantName value
     * @return string|null
     */
    public function getOccupantName()
    {
        return $this->occupantName;
    }
    /**
     * Set occupantName value
     * @param string $occupantName
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setOccupantName($occupantName = null)
    {
        $this->occupantName = $occupantName;
        return $this;
    }
    /**
     * Get postalCode value
     * @return string|null
     */
    public function getPostalCode()
    {
        return $this->postalCode;
    }
    /**
     * Set postalCode value
     * @param string $postalCode
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setPostalCode($postalCode = null)
    {
        $this->postalCode = $postalCode;
        return $this;
    }
    /**
     * Get relatedPolicies value
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\RelatedPolicies|null
     */
    public function getRelatedPolicies()
    {
        return $this->relatedPolicies;
    }
    /**
     * Set relatedPolicies value
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\RelatedPolicies $relatedPolicies
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XGeoLocationPolicy
     */
    public function setRelatedPolicies(\\Losc\CucmBundle\Model\Webservice\StructType\RelatedPolicies $relatedPolicies = null)
    {
        $this->relatedPolicies = $relatedPolicies;
        return $this;
    }
}
