<?php

namespace dgsoft\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VehicleLocationAdditionalDetailsTypeShuttle StructType
 * @package Dg
 * @subpackage Structs
 */
class DgVehicleLocationAdditionalDetailsTypeShuttle extends AbstractStructBase
{
    /**
     * The ShuttleInfos
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\ArrayType\DgArrayOfVehicleLocationAdditionalDetailsTypeShuttleShuttleInfo
     */
    public $ShuttleInfos;
    /**
     * The OperationSchedules
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\StructType\DgOperationSchedulesType
     */
    public $OperationSchedules;
    /**
     * Constructor method for VehicleLocationAdditionalDetailsTypeShuttle
     * @uses DgVehicleLocationAdditionalDetailsTypeShuttle::setShuttleInfos()
     * @uses DgVehicleLocationAdditionalDetailsTypeShuttle::setOperationSchedules()
     * @param \dgsoft\ArrayType\DgArrayOfVehicleLocationAdditionalDetailsTypeShuttleShuttleInfo $shuttleInfos
     * @param \dgsoft\StructType\DgOperationSchedulesType $operationSchedules
     */
    public function __construct(\dgsoft\ArrayType\DgArrayOfVehicleLocationAdditionalDetailsTypeShuttleShuttleInfo $shuttleInfos = null, \dgsoft\StructType\DgOperationSchedulesType $operationSchedules = null)
    {
        $this
            ->setShuttleInfos($shuttleInfos)
            ->setOperationSchedules($operationSchedules);
    }
    /**
     * Get ShuttleInfos value
     * @return \dgsoft\ArrayType\DgArrayOfVehicleLocationAdditionalDetailsTypeShuttleShuttleInfo|null
     */
    public function getShuttleInfos()
    {
        return $this->ShuttleInfos;
    }
    /**
     * Set ShuttleInfos value
     * @param \dgsoft\ArrayType\DgArrayOfVehicleLocationAdditionalDetailsTypeShuttleShuttleInfo $shuttleInfos
     * @return \dgsoft\StructType\DgVehicleLocationAdditionalDetailsTypeShuttle
     */
    public function setShuttleInfos(\dgsoft\ArrayType\DgArrayOfVehicleLocationAdditionalDetailsTypeShuttleShuttleInfo $shuttleInfos = null)
    {
        $this->ShuttleInfos = $shuttleInfos;
        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\DgVehicleLocationAdditionalDetailsTypeShuttle
     */
    public function setOperationSchedules(\dgsoft\StructType\DgOperationSchedulesType $operationSchedules = null)
    {
        $this->OperationSchedules = $operationSchedules;
        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\DgVehicleLocationAdditionalDetailsTypeShuttle
     */
    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__;
    }
}
