<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Area StructType
 * @subpackage Structs
 */
class Area extends Location
{
    /**
     * The alertCArea
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\AlertCArea
     */
    public $alertCArea;
    /**
     * The tpegAreaLocation
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\TpegAreaLocation
     */
    public $tpegAreaLocation;
    /**
     * The areaExtension
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\ExtensionType
     */
    public $areaExtension;
    /**
     * Constructor method for Area
     * @uses Area::setAlertCArea()
     * @uses Area::setTpegAreaLocation()
     * @uses Area::setAreaExtension()
     * @param \StructType\AlertCArea $alertCArea
     * @param \StructType\TpegAreaLocation $tpegAreaLocation
     * @param \StructType\ExtensionType $areaExtension
     */
    public function __construct(\StructType\AlertCArea $alertCArea = null, \StructType\TpegAreaLocation $tpegAreaLocation = null, \StructType\ExtensionType $areaExtension = null)
    {
        $this
            ->setAlertCArea($alertCArea)
            ->setTpegAreaLocation($tpegAreaLocation)
            ->setAreaExtension($areaExtension);
    }
    /**
     * Get alertCArea value
     * @return \StructType\AlertCArea|null
     */
    public function getAlertCArea()
    {
        return $this->alertCArea;
    }
    /**
     * Set alertCArea value
     * @param \StructType\AlertCArea $alertCArea
     * @return \StructType\Area
     */
    public function setAlertCArea(\StructType\AlertCArea $alertCArea = null)
    {
        $this->alertCArea = $alertCArea;
        return $this;
    }
    /**
     * Get tpegAreaLocation value
     * @return \StructType\TpegAreaLocation|null
     */
    public function getTpegAreaLocation()
    {
        return $this->tpegAreaLocation;
    }
    /**
     * Set tpegAreaLocation value
     * @param \StructType\TpegAreaLocation $tpegAreaLocation
     * @return \StructType\Area
     */
    public function setTpegAreaLocation(\StructType\TpegAreaLocation $tpegAreaLocation = null)
    {
        $this->tpegAreaLocation = $tpegAreaLocation;
        return $this;
    }
    /**
     * Get areaExtension value
     * @return \StructType\ExtensionType|null
     */
    public function getAreaExtension()
    {
        return $this->areaExtension;
    }
    /**
     * Set areaExtension value
     * @param \StructType\ExtensionType $areaExtension
     * @return \StructType\Area
     */
    public function setAreaExtension(\StructType\ExtensionType $areaExtension = null)
    {
        $this->areaExtension = $areaExtension;
        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 \StructType\Area
     */
    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__;
    }
}
