<?php

namespace Sabre\CreatePassengerNameRecord\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VehResCore Structs
 * @subpackage Structs
 */
class VehResCore extends AbstractStructBase
{
    /**
     * The CollectionDeliveryInfo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\CollectionDeliveryInfo
     */
    public $CollectionDeliveryInfo;
    /**
     * The GuaranteePrepaid
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\GuaranteePrepaid
     */
    public $GuaranteePrepaid;
    /**
     * The PricedEquip
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\PricedEquip
     */
    public $PricedEquip;
    /**
     * The RentalRate
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\RentalRate
     */
    public $RentalRate;
    /**
     * The VehicleCharges
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\VehicleCharges
     */
    public $VehicleCharges;
    /**
     * Constructor method for VehResCore
     * @uses VehResCore::setCollectionDeliveryInfo()
     * @uses VehResCore::setGuaranteePrepaid()
     * @uses VehResCore::setPricedEquip()
     * @uses VehResCore::setRentalRate()
     * @uses VehResCore::setVehicleCharges()
     * @param \Sabre\CreatePassengerNameRecord\Structs\CollectionDeliveryInfo $collectionDeliveryInfo
     * @param \Sabre\CreatePassengerNameRecord\Structs\GuaranteePrepaid $guaranteePrepaid
     * @param \Sabre\CreatePassengerNameRecord\Structs\PricedEquip $pricedEquip
     * @param \Sabre\CreatePassengerNameRecord\Structs\RentalRate $rentalRate
     * @param \Sabre\CreatePassengerNameRecord\Structs\VehicleCharges $vehicleCharges
     */
    public function __construct(\Sabre\CreatePassengerNameRecord\Structs\CollectionDeliveryInfo $collectionDeliveryInfo = null, \Sabre\CreatePassengerNameRecord\Structs\GuaranteePrepaid $guaranteePrepaid = null, \Sabre\CreatePassengerNameRecord\Structs\PricedEquip $pricedEquip = null, \Sabre\CreatePassengerNameRecord\Structs\RentalRate $rentalRate = null, \Sabre\CreatePassengerNameRecord\Structs\VehicleCharges $vehicleCharges = null)
    {
        $this
            ->setCollectionDeliveryInfo($collectionDeliveryInfo)
            ->setGuaranteePrepaid($guaranteePrepaid)
            ->setPricedEquip($pricedEquip)
            ->setRentalRate($rentalRate)
            ->setVehicleCharges($vehicleCharges);
    }
    /**
     * Get CollectionDeliveryInfo value
     * @return \Sabre\CreatePassengerNameRecord\Structs\CollectionDeliveryInfo|null
     */
    public function getCollectionDeliveryInfo()
    {
        return $this->CollectionDeliveryInfo;
    }
    /**
     * Set CollectionDeliveryInfo value
     * @param \Sabre\CreatePassengerNameRecord\Structs\CollectionDeliveryInfo $collectionDeliveryInfo
     * @return \Sabre\CreatePassengerNameRecord\Structs\VehResCore
     */
    public function setCollectionDeliveryInfo(\Sabre\CreatePassengerNameRecord\Structs\CollectionDeliveryInfo $collectionDeliveryInfo = null)
    {
        $this->CollectionDeliveryInfo = $collectionDeliveryInfo;
        return $this;
    }
    /**
     * Get GuaranteePrepaid value
     * @return \Sabre\CreatePassengerNameRecord\Structs\GuaranteePrepaid|null
     */
    public function getGuaranteePrepaid()
    {
        return $this->GuaranteePrepaid;
    }
    /**
     * Set GuaranteePrepaid value
     * @param \Sabre\CreatePassengerNameRecord\Structs\GuaranteePrepaid $guaranteePrepaid
     * @return \Sabre\CreatePassengerNameRecord\Structs\VehResCore
     */
    public function setGuaranteePrepaid(\Sabre\CreatePassengerNameRecord\Structs\GuaranteePrepaid $guaranteePrepaid = null)
    {
        $this->GuaranteePrepaid = $guaranteePrepaid;
        return $this;
    }
    /**
     * Get PricedEquip value
     * @return \Sabre\CreatePassengerNameRecord\Structs\PricedEquip|null
     */
    public function getPricedEquip()
    {
        return $this->PricedEquip;
    }
    /**
     * Set PricedEquip value
     * @param \Sabre\CreatePassengerNameRecord\Structs\PricedEquip $pricedEquip
     * @return \Sabre\CreatePassengerNameRecord\Structs\VehResCore
     */
    public function setPricedEquip(\Sabre\CreatePassengerNameRecord\Structs\PricedEquip $pricedEquip = null)
    {
        $this->PricedEquip = $pricedEquip;
        return $this;
    }
    /**
     * Get RentalRate value
     * @return \Sabre\CreatePassengerNameRecord\Structs\RentalRate|null
     */
    public function getRentalRate()
    {
        return $this->RentalRate;
    }
    /**
     * Set RentalRate value
     * @param \Sabre\CreatePassengerNameRecord\Structs\RentalRate $rentalRate
     * @return \Sabre\CreatePassengerNameRecord\Structs\VehResCore
     */
    public function setRentalRate(\Sabre\CreatePassengerNameRecord\Structs\RentalRate $rentalRate = null)
    {
        $this->RentalRate = $rentalRate;
        return $this;
    }
    /**
     * Get VehicleCharges value
     * @return \Sabre\CreatePassengerNameRecord\Structs\VehicleCharges|null
     */
    public function getVehicleCharges()
    {
        return $this->VehicleCharges;
    }
    /**
     * Set VehicleCharges value
     * @param \Sabre\CreatePassengerNameRecord\Structs\VehicleCharges $vehicleCharges
     * @return \Sabre\CreatePassengerNameRecord\Structs\VehResCore
     */
    public function setVehicleCharges(\Sabre\CreatePassengerNameRecord\Structs\VehicleCharges $vehicleCharges = null)
    {
        $this->VehicleCharges = $vehicleCharges;
        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 \Sabre\CreatePassengerNameRecord\Structs\VehResCore
     */
    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__;
    }
}
