<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VehicleCANDiagnostics StructType
 * @subpackage Structs
 */
class VehicleCANDiagnostics extends AbstractStructBase
{
    /**
     * The CanRpm
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $CanRpm;
    /**
     * The CanConsumptionType
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $CanConsumptionType;
    /**
     * The ActiveCanInfo
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $ActiveCanInfo;
    /**
     * The ActiveCanServiceDistance
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $ActiveCanServiceDistance;
    /**
     * The ActiveCanReceived
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $ActiveCanReceived;
    /**
     * The ActiveCanFormatVersion
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $ActiveCanFormatVersion;
    /**
     * The CanPTOVersionNr
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $CanPTOVersionNr;
    /**
     * The CanPTOState
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $CanPTOState;
    /**
     * The ActiveCanComportNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $ActiveCanComportNumber;
    /**
     * The CANReceiverSoftwareVersion
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $CANReceiverSoftwareVersion;
    /**
     * Constructor method for VehicleCANDiagnostics
     * @uses VehicleCANDiagnostics::setCanRpm()
     * @uses VehicleCANDiagnostics::setCanConsumptionType()
     * @uses VehicleCANDiagnostics::setActiveCanInfo()
     * @uses VehicleCANDiagnostics::setActiveCanServiceDistance()
     * @uses VehicleCANDiagnostics::setActiveCanReceived()
     * @uses VehicleCANDiagnostics::setActiveCanFormatVersion()
     * @uses VehicleCANDiagnostics::setCanPTOVersionNr()
     * @uses VehicleCANDiagnostics::setCanPTOState()
     * @uses VehicleCANDiagnostics::setActiveCanComportNumber()
     * @uses VehicleCANDiagnostics::setCANReceiverSoftwareVersion()
     * @param string $canRpm
     * @param string $canConsumptionType
     * @param string $activeCanInfo
     * @param string $activeCanServiceDistance
     * @param string $activeCanReceived
     * @param string $activeCanFormatVersion
     * @param string $canPTOVersionNr
     * @param string $canPTOState
     * @param string $activeCanComportNumber
     * @param string $cANReceiverSoftwareVersion
     */
    public function __construct($canRpm = null, $canConsumptionType = null, $activeCanInfo = null, $activeCanServiceDistance = null, $activeCanReceived = null, $activeCanFormatVersion = null, $canPTOVersionNr = null, $canPTOState = null, $activeCanComportNumber = null, $cANReceiverSoftwareVersion = null)
    {
        $this
            ->setCanRpm($canRpm)
            ->setCanConsumptionType($canConsumptionType)
            ->setActiveCanInfo($activeCanInfo)
            ->setActiveCanServiceDistance($activeCanServiceDistance)
            ->setActiveCanReceived($activeCanReceived)
            ->setActiveCanFormatVersion($activeCanFormatVersion)
            ->setCanPTOVersionNr($canPTOVersionNr)
            ->setCanPTOState($canPTOState)
            ->setActiveCanComportNumber($activeCanComportNumber)
            ->setCANReceiverSoftwareVersion($cANReceiverSoftwareVersion);
    }
    /**
     * Get CanRpm value
     * @return string|null
     */
    public function getCanRpm()
    {
        return $this->CanRpm;
    }
    /**
     * Set CanRpm value
     * @param string $canRpm
     * @return \StructType\VehicleCANDiagnostics
     */
    public function setCanRpm($canRpm = null)
    {
        // validation for constraint: string
        if (!is_null($canRpm) && !is_string($canRpm)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($canRpm, true), gettype($canRpm)), __LINE__);
        }
        $this->CanRpm = $canRpm;
        return $this;
    }
    /**
     * Get CanConsumptionType value
     * @return string|null
     */
    public function getCanConsumptionType()
    {
        return $this->CanConsumptionType;
    }
    /**
     * Set CanConsumptionType value
     * @param string $canConsumptionType
     * @return \StructType\VehicleCANDiagnostics
     */
    public function setCanConsumptionType($canConsumptionType = null)
    {
        // validation for constraint: string
        if (!is_null($canConsumptionType) && !is_string($canConsumptionType)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($canConsumptionType, true), gettype($canConsumptionType)), __LINE__);
        }
        $this->CanConsumptionType = $canConsumptionType;
        return $this;
    }
    /**
     * Get ActiveCanInfo value
     * @return string|null
     */
    public function getActiveCanInfo()
    {
        return $this->ActiveCanInfo;
    }
    /**
     * Set ActiveCanInfo value
     * @param string $activeCanInfo
     * @return \StructType\VehicleCANDiagnostics
     */
    public function setActiveCanInfo($activeCanInfo = null)
    {
        // validation for constraint: string
        if (!is_null($activeCanInfo) && !is_string($activeCanInfo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($activeCanInfo, true), gettype($activeCanInfo)), __LINE__);
        }
        $this->ActiveCanInfo = $activeCanInfo;
        return $this;
    }
    /**
     * Get ActiveCanServiceDistance value
     * @return string|null
     */
    public function getActiveCanServiceDistance()
    {
        return $this->ActiveCanServiceDistance;
    }
    /**
     * Set ActiveCanServiceDistance value
     * @param string $activeCanServiceDistance
     * @return \StructType\VehicleCANDiagnostics
     */
    public function setActiveCanServiceDistance($activeCanServiceDistance = null)
    {
        // validation for constraint: string
        if (!is_null($activeCanServiceDistance) && !is_string($activeCanServiceDistance)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($activeCanServiceDistance, true), gettype($activeCanServiceDistance)), __LINE__);
        }
        $this->ActiveCanServiceDistance = $activeCanServiceDistance;
        return $this;
    }
    /**
     * Get ActiveCanReceived value
     * @return string|null
     */
    public function getActiveCanReceived()
    {
        return $this->ActiveCanReceived;
    }
    /**
     * Set ActiveCanReceived value
     * @param string $activeCanReceived
     * @return \StructType\VehicleCANDiagnostics
     */
    public function setActiveCanReceived($activeCanReceived = null)
    {
        // validation for constraint: string
        if (!is_null($activeCanReceived) && !is_string($activeCanReceived)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($activeCanReceived, true), gettype($activeCanReceived)), __LINE__);
        }
        $this->ActiveCanReceived = $activeCanReceived;
        return $this;
    }
    /**
     * Get ActiveCanFormatVersion value
     * @return string|null
     */
    public function getActiveCanFormatVersion()
    {
        return $this->ActiveCanFormatVersion;
    }
    /**
     * Set ActiveCanFormatVersion value
     * @param string $activeCanFormatVersion
     * @return \StructType\VehicleCANDiagnostics
     */
    public function setActiveCanFormatVersion($activeCanFormatVersion = null)
    {
        // validation for constraint: string
        if (!is_null($activeCanFormatVersion) && !is_string($activeCanFormatVersion)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($activeCanFormatVersion, true), gettype($activeCanFormatVersion)), __LINE__);
        }
        $this->ActiveCanFormatVersion = $activeCanFormatVersion;
        return $this;
    }
    /**
     * Get CanPTOVersionNr value
     * @return string|null
     */
    public function getCanPTOVersionNr()
    {
        return $this->CanPTOVersionNr;
    }
    /**
     * Set CanPTOVersionNr value
     * @param string $canPTOVersionNr
     * @return \StructType\VehicleCANDiagnostics
     */
    public function setCanPTOVersionNr($canPTOVersionNr = null)
    {
        // validation for constraint: string
        if (!is_null($canPTOVersionNr) && !is_string($canPTOVersionNr)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($canPTOVersionNr, true), gettype($canPTOVersionNr)), __LINE__);
        }
        $this->CanPTOVersionNr = $canPTOVersionNr;
        return $this;
    }
    /**
     * Get CanPTOState value
     * @return string|null
     */
    public function getCanPTOState()
    {
        return $this->CanPTOState;
    }
    /**
     * Set CanPTOState value
     * @param string $canPTOState
     * @return \StructType\VehicleCANDiagnostics
     */
    public function setCanPTOState($canPTOState = null)
    {
        // validation for constraint: string
        if (!is_null($canPTOState) && !is_string($canPTOState)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($canPTOState, true), gettype($canPTOState)), __LINE__);
        }
        $this->CanPTOState = $canPTOState;
        return $this;
    }
    /**
     * Get ActiveCanComportNumber value
     * @return string|null
     */
    public function getActiveCanComportNumber()
    {
        return $this->ActiveCanComportNumber;
    }
    /**
     * Set ActiveCanComportNumber value
     * @param string $activeCanComportNumber
     * @return \StructType\VehicleCANDiagnostics
     */
    public function setActiveCanComportNumber($activeCanComportNumber = null)
    {
        // validation for constraint: string
        if (!is_null($activeCanComportNumber) && !is_string($activeCanComportNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($activeCanComportNumber, true), gettype($activeCanComportNumber)), __LINE__);
        }
        $this->ActiveCanComportNumber = $activeCanComportNumber;
        return $this;
    }
    /**
     * Get CANReceiverSoftwareVersion value
     * @return string|null
     */
    public function getCANReceiverSoftwareVersion()
    {
        return $this->CANReceiverSoftwareVersion;
    }
    /**
     * Set CANReceiverSoftwareVersion value
     * @param string $cANReceiverSoftwareVersion
     * @return \StructType\VehicleCANDiagnostics
     */
    public function setCANReceiverSoftwareVersion($cANReceiverSoftwareVersion = null)
    {
        // validation for constraint: string
        if (!is_null($cANReceiverSoftwareVersion) && !is_string($cANReceiverSoftwareVersion)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($cANReceiverSoftwareVersion, true), gettype($cANReceiverSoftwareVersion)), __LINE__);
        }
        $this->CANReceiverSoftwareVersion = $cANReceiverSoftwareVersion;
        return $this;
    }
}
