<?php

namespace Sabre\TravelItineraryRead\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VehicleResCore Structs
 * @subpackage Structs
 */
class VehicleResCore extends AbstractStructBase
{
    /**
     * The CollectionDeliveryInfo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\TravelItineraryRead\Structs\CollectionDeliveryInfo
     */
    public $CollectionDeliveryInfo;
    /**
     * The GuaranteePrepaid
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\TravelItineraryRead\Structs\GuaranteePrepaid
     */
    public $GuaranteePrepaid;
    /**
     * The PricedEquipment
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\TravelItineraryRead\Structs\PricedEquipment
     */
    public $PricedEquipment;
    /**
     * The RentalRate
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\TravelItineraryRead\Structs\RentalRate
     */
    public $RentalRate;
    /**
     * The Charge
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\TravelItineraryRead\Structs\Charge
     */
    public $Charge;
    /**
     * Constructor method for VehicleResCore
     * @uses VehicleResCore::setCollectionDeliveryInfo()
     * @uses VehicleResCore::setGuaranteePrepaid()
     * @uses VehicleResCore::setPricedEquipment()
     * @uses VehicleResCore::setRentalRate()
     * @uses VehicleResCore::setCharge()
     * @param \Sabre\TravelItineraryRead\Structs\CollectionDeliveryInfo $collectionDeliveryInfo
     * @param \Sabre\TravelItineraryRead\Structs\GuaranteePrepaid $guaranteePrepaid
     * @param \Sabre\TravelItineraryRead\Structs\PricedEquipment $pricedEquipment
     * @param \Sabre\TravelItineraryRead\Structs\RentalRate $rentalRate
     * @param \Sabre\TravelItineraryRead\Structs\Charge $charge
     */
    public function __construct(\Sabre\TravelItineraryRead\Structs\CollectionDeliveryInfo $collectionDeliveryInfo = null, \Sabre\TravelItineraryRead\Structs\GuaranteePrepaid $guaranteePrepaid = null, \Sabre\TravelItineraryRead\Structs\PricedEquipment $pricedEquipment = null, \Sabre\TravelItineraryRead\Structs\RentalRate $rentalRate = null, \Sabre\TravelItineraryRead\Structs\Charge $charge = null)
    {
        $this
            ->setCollectionDeliveryInfo($collectionDeliveryInfo)
            ->setGuaranteePrepaid($guaranteePrepaid)
            ->setPricedEquipment($pricedEquipment)
            ->setRentalRate($rentalRate)
            ->setCharge($charge);
    }
    /**
     * Get CollectionDeliveryInfo value
     * @return \Sabre\TravelItineraryRead\Structs\CollectionDeliveryInfo|null
     */
    public function getCollectionDeliveryInfo()
    {
        return $this->CollectionDeliveryInfo;
    }
    /**
     * Set CollectionDeliveryInfo value
     * @param \Sabre\TravelItineraryRead\Structs\CollectionDeliveryInfo $collectionDeliveryInfo
     * @return \Sabre\TravelItineraryRead\Structs\VehicleResCore
     */
    public function setCollectionDeliveryInfo(\Sabre\TravelItineraryRead\Structs\CollectionDeliveryInfo $collectionDeliveryInfo = null)
    {
        $this->CollectionDeliveryInfo = $collectionDeliveryInfo;
        return $this;
    }
    /**
     * Get GuaranteePrepaid value
     * @return \Sabre\TravelItineraryRead\Structs\GuaranteePrepaid|null
     */
    public function getGuaranteePrepaid()
    {
        return $this->GuaranteePrepaid;
    }
    /**
     * Set GuaranteePrepaid value
     * @param \Sabre\TravelItineraryRead\Structs\GuaranteePrepaid $guaranteePrepaid
     * @return \Sabre\TravelItineraryRead\Structs\VehicleResCore
     */
    public function setGuaranteePrepaid(\Sabre\TravelItineraryRead\Structs\GuaranteePrepaid $guaranteePrepaid = null)
    {
        $this->GuaranteePrepaid = $guaranteePrepaid;
        return $this;
    }
    /**
     * Get PricedEquipment value
     * @return \Sabre\TravelItineraryRead\Structs\PricedEquipment|null
     */
    public function getPricedEquipment()
    {
        return $this->PricedEquipment;
    }
    /**
     * Set PricedEquipment value
     * @param \Sabre\TravelItineraryRead\Structs\PricedEquipment $pricedEquipment
     * @return \Sabre\TravelItineraryRead\Structs\VehicleResCore
     */
    public function setPricedEquipment(\Sabre\TravelItineraryRead\Structs\PricedEquipment $pricedEquipment = null)
    {
        $this->PricedEquipment = $pricedEquipment;
        return $this;
    }
    /**
     * Get RentalRate value
     * @return \Sabre\TravelItineraryRead\Structs\RentalRate|null
     */
    public function getRentalRate()
    {
        return $this->RentalRate;
    }
    /**
     * Set RentalRate value
     * @param \Sabre\TravelItineraryRead\Structs\RentalRate $rentalRate
     * @return \Sabre\TravelItineraryRead\Structs\VehicleResCore
     */
    public function setRentalRate(\Sabre\TravelItineraryRead\Structs\RentalRate $rentalRate = null)
    {
        $this->RentalRate = $rentalRate;
        return $this;
    }
    /**
     * Get Charge value
     * @return \Sabre\TravelItineraryRead\Structs\Charge|null
     */
    public function getCharge()
    {
        return $this->Charge;
    }
    /**
     * Set Charge value
     * @param \Sabre\TravelItineraryRead\Structs\Charge $charge
     * @return \Sabre\TravelItineraryRead\Structs\VehicleResCore
     */
    public function setCharge(\Sabre\TravelItineraryRead\Structs\Charge $charge = null)
    {
        $this->Charge = $charge;
        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\TravelItineraryRead\Structs\VehicleResCore
     */
    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__;
    }
}
