<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Linear StructType
 * @subpackage Structs
 */
class Linear extends NetworkLocation
{
    /**
     * The tpegLinearLocation
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\TpegLinearLocation
     */
    public $tpegLinearLocation;
    /**
     * The alertCLinear
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\AlertCLinear
     */
    public $alertCLinear;
    /**
     * The roadsideReferencePointLinear
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RoadsideReferencePointLinear
     */
    public $roadsideReferencePointLinear;
    /**
     * The linearExtension
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\ExtensionType
     */
    public $linearExtension;
    /**
     * Constructor method for Linear
     * @uses Linear::setTpegLinearLocation()
     * @uses Linear::setAlertCLinear()
     * @uses Linear::setRoadsideReferencePointLinear()
     * @uses Linear::setLinearExtension()
     * @param \StructType\TpegLinearLocation $tpegLinearLocation
     * @param \StructType\AlertCLinear $alertCLinear
     * @param \StructType\RoadsideReferencePointLinear $roadsideReferencePointLinear
     * @param \StructType\ExtensionType $linearExtension
     */
    public function __construct(\StructType\TpegLinearLocation $tpegLinearLocation = null, \StructType\AlertCLinear $alertCLinear = null, \StructType\RoadsideReferencePointLinear $roadsideReferencePointLinear = null, \StructType\ExtensionType $linearExtension = null)
    {
        $this
            ->setTpegLinearLocation($tpegLinearLocation)
            ->setAlertCLinear($alertCLinear)
            ->setRoadsideReferencePointLinear($roadsideReferencePointLinear)
            ->setLinearExtension($linearExtension);
    }
    /**
     * Get tpegLinearLocation value
     * @return \StructType\TpegLinearLocation|null
     */
    public function getTpegLinearLocation()
    {
        return $this->tpegLinearLocation;
    }
    /**
     * Set tpegLinearLocation value
     * @param \StructType\TpegLinearLocation $tpegLinearLocation
     * @return \StructType\Linear
     */
    public function setTpegLinearLocation(\StructType\TpegLinearLocation $tpegLinearLocation = null)
    {
        $this->tpegLinearLocation = $tpegLinearLocation;
        return $this;
    }
    /**
     * Get alertCLinear value
     * @return \StructType\AlertCLinear|null
     */
    public function getAlertCLinear()
    {
        return $this->alertCLinear;
    }
    /**
     * Set alertCLinear value
     * @param \StructType\AlertCLinear $alertCLinear
     * @return \StructType\Linear
     */
    public function setAlertCLinear(\StructType\AlertCLinear $alertCLinear = null)
    {
        $this->alertCLinear = $alertCLinear;
        return $this;
    }
    /**
     * Get roadsideReferencePointLinear value
     * @return \StructType\RoadsideReferencePointLinear|null
     */
    public function getRoadsideReferencePointLinear()
    {
        return $this->roadsideReferencePointLinear;
    }
    /**
     * Set roadsideReferencePointLinear value
     * @param \StructType\RoadsideReferencePointLinear $roadsideReferencePointLinear
     * @return \StructType\Linear
     */
    public function setRoadsideReferencePointLinear(\StructType\RoadsideReferencePointLinear $roadsideReferencePointLinear = null)
    {
        $this->roadsideReferencePointLinear = $roadsideReferencePointLinear;
        return $this;
    }
    /**
     * Get linearExtension value
     * @return \StructType\ExtensionType|null
     */
    public function getLinearExtension()
    {
        return $this->linearExtension;
    }
    /**
     * Set linearExtension value
     * @param \StructType\ExtensionType $linearExtension
     * @return \StructType\Linear
     */
    public function setLinearExtension(\StructType\ExtensionType $linearExtension = null)
    {
        $this->linearExtension = $linearExtension;
        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\Linear
     */
    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__;
    }
}
