<?php

namespace dgsoft\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VehicleLocationAdditionalDetailsType StructType
 * @package Dg
 * @subpackage Structs
 */
class DgVehicleLocationAdditionalDetailsType extends AbstractStructBase
{
    /**
     * The VehRentLocInfos
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\ArrayType\DgArrayOfVehicleLocationInformationType
     */
    public $VehRentLocInfos;
    /**
     * The ParkLocation
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\StructType\DgVehicleWhereAtFacilityType
     */
    public $ParkLocation;
    /**
     * The CounterLocation
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\StructType\DgVehicleWhereAtFacilityType
     */
    public $CounterLocation;
    /**
     * The OperationSchedules
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\StructType\DgOperationSchedulesType
     */
    public $OperationSchedules;
    /**
     * The Shuttle
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\StructType\DgVehicleLocationAdditionalDetailsTypeShuttle
     */
    public $Shuttle;
    /**
     * The OneWayDropLocations
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\ArrayType\DgArrayOfVehicleLocationAdditionalDetailsTypeOneWayDropLocation
     */
    public $OneWayDropLocations;
    /**
     * The TPA_Extensions
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\StructType\DgTPA_ExtensionsType
     */
    public $TPA_Extensions;
    /**
     * Constructor method for VehicleLocationAdditionalDetailsType
     * @uses DgVehicleLocationAdditionalDetailsType::setVehRentLocInfos()
     * @uses DgVehicleLocationAdditionalDetailsType::setParkLocation()
     * @uses DgVehicleLocationAdditionalDetailsType::setCounterLocation()
     * @uses DgVehicleLocationAdditionalDetailsType::setOperationSchedules()
     * @uses DgVehicleLocationAdditionalDetailsType::setShuttle()
     * @uses DgVehicleLocationAdditionalDetailsType::setOneWayDropLocations()
     * @uses DgVehicleLocationAdditionalDetailsType::setTPA_Extensions()
     * @param \dgsoft\ArrayType\DgArrayOfVehicleLocationInformationType $vehRentLocInfos
     * @param \dgsoft\StructType\DgVehicleWhereAtFacilityType $parkLocation
     * @param \dgsoft\StructType\DgVehicleWhereAtFacilityType $counterLocation
     * @param \dgsoft\StructType\DgOperationSchedulesType $operationSchedules
     * @param \dgsoft\StructType\DgVehicleLocationAdditionalDetailsTypeShuttle $shuttle
     * @param \dgsoft\ArrayType\DgArrayOfVehicleLocationAdditionalDetailsTypeOneWayDropLocation $oneWayDropLocations
     * @param \dgsoft\StructType\DgTPA_ExtensionsType $tPA_Extensions
     */
    public function __construct(\dgsoft\ArrayType\DgArrayOfVehicleLocationInformationType $vehRentLocInfos = null, \dgsoft\StructType\DgVehicleWhereAtFacilityType $parkLocation = null, \dgsoft\StructType\DgVehicleWhereAtFacilityType $counterLocation = null, \dgsoft\StructType\DgOperationSchedulesType $operationSchedules = null, \dgsoft\StructType\DgVehicleLocationAdditionalDetailsTypeShuttle $shuttle = null, \dgsoft\ArrayType\DgArrayOfVehicleLocationAdditionalDetailsTypeOneWayDropLocation $oneWayDropLocations = null, \dgsoft\StructType\DgTPA_ExtensionsType $tPA_Extensions = null)
    {
        $this
            ->setVehRentLocInfos($vehRentLocInfos)
            ->setParkLocation($parkLocation)
            ->setCounterLocation($counterLocation)
            ->setOperationSchedules($operationSchedules)
            ->setShuttle($shuttle)
            ->setOneWayDropLocations($oneWayDropLocations)
            ->setTPA_Extensions($tPA_Extensions);
    }
    /**
     * Get VehRentLocInfos value
     * @return \dgsoft\ArrayType\DgArrayOfVehicleLocationInformationType|null
     */
    public function getVehRentLocInfos()
    {
        return $this->VehRentLocInfos;
    }
    /**
     * Set VehRentLocInfos value
     * @param \dgsoft\ArrayType\DgArrayOfVehicleLocationInformationType $vehRentLocInfos
     * @return \dgsoft\StructType\DgVehicleLocationAdditionalDetailsType
     */
    public function setVehRentLocInfos(\dgsoft\ArrayType\DgArrayOfVehicleLocationInformationType $vehRentLocInfos = null)
    {
        $this->VehRentLocInfos = $vehRentLocInfos;
        return $this;
    }
    /**
     * Get ParkLocation value
     * @return \dgsoft\StructType\DgVehicleWhereAtFacilityType|null
     */
    public function getParkLocation()
    {
        return $this->ParkLocation;
    }
    /**
     * Set ParkLocation value
     * @param \dgsoft\StructType\DgVehicleWhereAtFacilityType $parkLocation
     * @return \dgsoft\StructType\DgVehicleLocationAdditionalDetailsType
     */
    public function setParkLocation(\dgsoft\StructType\DgVehicleWhereAtFacilityType $parkLocation = null)
    {
        $this->ParkLocation = $parkLocation;
        return $this;
    }
    /**
     * Get CounterLocation value
     * @return \dgsoft\StructType\DgVehicleWhereAtFacilityType|null
     */
    public function getCounterLocation()
    {
        return $this->CounterLocation;
    }
    /**
     * Set CounterLocation value
     * @param \dgsoft\StructType\DgVehicleWhereAtFacilityType $counterLocation
     * @return \dgsoft\StructType\DgVehicleLocationAdditionalDetailsType
     */
    public function setCounterLocation(\dgsoft\StructType\DgVehicleWhereAtFacilityType $counterLocation = null)
    {
        $this->CounterLocation = $counterLocation;
        return $this;
    }
    /**
     * Get OperationSchedules value
     * @return \dgsoft\StructType\DgOperationSchedulesType|null
     */
    public function getOperationSchedules()
    {
        return $this->OperationSchedules;
    }
    /**
     * Set OperationSchedules value
     * @param \dgsoft\StructType\DgOperationSchedulesType $operationSchedules
     * @return \dgsoft\StructType\DgVehicleLocationAdditionalDetailsType
     */
    public function setOperationSchedules(\dgsoft\StructType\DgOperationSchedulesType $operationSchedules = null)
    {
        $this->OperationSchedules = $operationSchedules;
        return $this;
    }
    /**
     * Get Shuttle value
     * @return \dgsoft\StructType\DgVehicleLocationAdditionalDetailsTypeShuttle|null
     */
    public function getShuttle()
    {
        return $this->Shuttle;
    }
    /**
     * Set Shuttle value
     * @param \dgsoft\StructType\DgVehicleLocationAdditionalDetailsTypeShuttle $shuttle
     * @return \dgsoft\StructType\DgVehicleLocationAdditionalDetailsType
     */
    public function setShuttle(\dgsoft\StructType\DgVehicleLocationAdditionalDetailsTypeShuttle $shuttle = null)
    {
        $this->Shuttle = $shuttle;
        return $this;
    }
    /**
     * Get OneWayDropLocations value
     * @return \dgsoft\ArrayType\DgArrayOfVehicleLocationAdditionalDetailsTypeOneWayDropLocation|null
     */
    public function getOneWayDropLocations()
    {
        return $this->OneWayDropLocations;
    }
    /**
     * Set OneWayDropLocations value
     * @param \dgsoft\ArrayType\DgArrayOfVehicleLocationAdditionalDetailsTypeOneWayDropLocation $oneWayDropLocations
     * @return \dgsoft\StructType\DgVehicleLocationAdditionalDetailsType
     */
    public function setOneWayDropLocations(\dgsoft\ArrayType\DgArrayOfVehicleLocationAdditionalDetailsTypeOneWayDropLocation $oneWayDropLocations = null)
    {
        $this->OneWayDropLocations = $oneWayDropLocations;
        return $this;
    }
    /**
     * Get TPA_Extensions value
     * @return \dgsoft\StructType\DgTPA_ExtensionsType|null
     */
    public function getTPA_Extensions()
    {
        return $this->TPA_Extensions;
    }
    /**
     * Set TPA_Extensions value
     * @param \dgsoft\StructType\DgTPA_ExtensionsType $tPA_Extensions
     * @return \dgsoft\StructType\DgVehicleLocationAdditionalDetailsType
     */
    public function setTPA_Extensions(\dgsoft\StructType\DgTPA_ExtensionsType $tPA_Extensions = null)
    {
        $this->TPA_Extensions = $tPA_Extensions;
        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 \dgsoft\StructType\DgVehicleLocationAdditionalDetailsType
     */
    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__;
    }
}
