<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VehicleStatuses StructType
 * @subpackage Structs
 */
class VehicleStatuses extends AbstractStructBase
{
    /**
     * The Company
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $Company;
    /**
     * The Rental
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $Rental;
    /**
     * The Loan
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $Loan;
    /**
     * The Truck
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $Truck;
    /**
     * The LightVehicle
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $LightVehicle;
    /**
     * The DigitalTacho
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $DigitalTacho;
    /**
     * The TractorUnit
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $TractorUnit;
    /**
     * The Coach
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $Coach;
    /**
     * Constructor method for VehicleStatuses
     * @uses VehicleStatuses::setCompany()
     * @uses VehicleStatuses::setRental()
     * @uses VehicleStatuses::setLoan()
     * @uses VehicleStatuses::setTruck()
     * @uses VehicleStatuses::setLightVehicle()
     * @uses VehicleStatuses::setDigitalTacho()
     * @uses VehicleStatuses::setTractorUnit()
     * @uses VehicleStatuses::setCoach()
     * @param bool $company
     * @param bool $rental
     * @param bool $loan
     * @param bool $truck
     * @param bool $lightVehicle
     * @param bool $digitalTacho
     * @param bool $tractorUnit
     * @param bool $coach
     */
    public function __construct($company = null, $rental = null, $loan = null, $truck = null, $lightVehicle = null, $digitalTacho = null, $tractorUnit = null, $coach = null)
    {
        $this
            ->setCompany($company)
            ->setRental($rental)
            ->setLoan($loan)
            ->setTruck($truck)
            ->setLightVehicle($lightVehicle)
            ->setDigitalTacho($digitalTacho)
            ->setTractorUnit($tractorUnit)
            ->setCoach($coach);
    }
    /**
     * Get Company value
     * @return bool
     */
    public function getCompany()
    {
        return $this->Company;
    }
    /**
     * Set Company value
     * @param bool $company
     * @return \StructType\VehicleStatuses
     */
    public function setCompany($company = null)
    {
        // validation for constraint: boolean
        if (!is_null($company) && !is_bool($company)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($company, true), gettype($company)), __LINE__);
        }
        $this->Company = $company;
        return $this;
    }
    /**
     * Get Rental value
     * @return bool
     */
    public function getRental()
    {
        return $this->Rental;
    }
    /**
     * Set Rental value
     * @param bool $rental
     * @return \StructType\VehicleStatuses
     */
    public function setRental($rental = null)
    {
        // validation for constraint: boolean
        if (!is_null($rental) && !is_bool($rental)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($rental, true), gettype($rental)), __LINE__);
        }
        $this->Rental = $rental;
        return $this;
    }
    /**
     * Get Loan value
     * @return bool
     */
    public function getLoan()
    {
        return $this->Loan;
    }
    /**
     * Set Loan value
     * @param bool $loan
     * @return \StructType\VehicleStatuses
     */
    public function setLoan($loan = null)
    {
        // validation for constraint: boolean
        if (!is_null($loan) && !is_bool($loan)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($loan, true), gettype($loan)), __LINE__);
        }
        $this->Loan = $loan;
        return $this;
    }
    /**
     * Get Truck value
     * @return bool
     */
    public function getTruck()
    {
        return $this->Truck;
    }
    /**
     * Set Truck value
     * @param bool $truck
     * @return \StructType\VehicleStatuses
     */
    public function setTruck($truck = null)
    {
        // validation for constraint: boolean
        if (!is_null($truck) && !is_bool($truck)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($truck, true), gettype($truck)), __LINE__);
        }
        $this->Truck = $truck;
        return $this;
    }
    /**
     * Get LightVehicle value
     * @return bool
     */
    public function getLightVehicle()
    {
        return $this->LightVehicle;
    }
    /**
     * Set LightVehicle value
     * @param bool $lightVehicle
     * @return \StructType\VehicleStatuses
     */
    public function setLightVehicle($lightVehicle = null)
    {
        // validation for constraint: boolean
        if (!is_null($lightVehicle) && !is_bool($lightVehicle)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($lightVehicle, true), gettype($lightVehicle)), __LINE__);
        }
        $this->LightVehicle = $lightVehicle;
        return $this;
    }
    /**
     * Get DigitalTacho value
     * @return bool
     */
    public function getDigitalTacho()
    {
        return $this->DigitalTacho;
    }
    /**
     * Set DigitalTacho value
     * @param bool $digitalTacho
     * @return \StructType\VehicleStatuses
     */
    public function setDigitalTacho($digitalTacho = null)
    {
        // validation for constraint: boolean
        if (!is_null($digitalTacho) && !is_bool($digitalTacho)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($digitalTacho, true), gettype($digitalTacho)), __LINE__);
        }
        $this->DigitalTacho = $digitalTacho;
        return $this;
    }
    /**
     * Get TractorUnit value
     * @return bool
     */
    public function getTractorUnit()
    {
        return $this->TractorUnit;
    }
    /**
     * Set TractorUnit value
     * @param bool $tractorUnit
     * @return \StructType\VehicleStatuses
     */
    public function setTractorUnit($tractorUnit = null)
    {
        // validation for constraint: boolean
        if (!is_null($tractorUnit) && !is_bool($tractorUnit)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($tractorUnit, true), gettype($tractorUnit)), __LINE__);
        }
        $this->TractorUnit = $tractorUnit;
        return $this;
    }
    /**
     * Get Coach value
     * @return bool
     */
    public function getCoach()
    {
        return $this->Coach;
    }
    /**
     * Set Coach value
     * @param bool $coach
     * @return \StructType\VehicleStatuses
     */
    public function setCoach($coach = null)
    {
        // validation for constraint: boolean
        if (!is_null($coach) && !is_bool($coach)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($coach, true), gettype($coach)), __LINE__);
        }
        $this->Coach = $coach;
        return $this;
    }
}
