<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VehicleInfoFields StructType
 * @subpackage Structs
 */
class VehicleInfoFields extends AbstractStructBase
{
    /**
     * The Info1DateTime
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var string
     */
    public $Info1DateTime;
    /**
     * The Info2DateTime
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var string
     */
    public $Info2DateTime;
    /**
     * The Info3DateTime
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var string
     */
    public $Info3DateTime;
    /**
     * The Info4DateTime
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var string
     */
    public $Info4DateTime;
    /**
     * The Info5DateTime
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var string
     */
    public $Info5DateTime;
    /**
     * The Info1
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $Info1;
    /**
     * The Info2
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $Info2;
    /**
     * The Info3
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $Info3;
    /**
     * The Info4
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $Info4;
    /**
     * The Info5
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $Info5;
    /**
     * Constructor method for VehicleInfoFields
     * @uses VehicleInfoFields::setInfo1DateTime()
     * @uses VehicleInfoFields::setInfo2DateTime()
     * @uses VehicleInfoFields::setInfo3DateTime()
     * @uses VehicleInfoFields::setInfo4DateTime()
     * @uses VehicleInfoFields::setInfo5DateTime()
     * @uses VehicleInfoFields::setInfo1()
     * @uses VehicleInfoFields::setInfo2()
     * @uses VehicleInfoFields::setInfo3()
     * @uses VehicleInfoFields::setInfo4()
     * @uses VehicleInfoFields::setInfo5()
     * @param string $info1DateTime
     * @param string $info2DateTime
     * @param string $info3DateTime
     * @param string $info4DateTime
     * @param string $info5DateTime
     * @param string $info1
     * @param string $info2
     * @param string $info3
     * @param string $info4
     * @param string $info5
     */
    public function __construct($info1DateTime = null, $info2DateTime = null, $info3DateTime = null, $info4DateTime = null, $info5DateTime = null, $info1 = null, $info2 = null, $info3 = null, $info4 = null, $info5 = null)
    {
        $this
            ->setInfo1DateTime($info1DateTime)
            ->setInfo2DateTime($info2DateTime)
            ->setInfo3DateTime($info3DateTime)
            ->setInfo4DateTime($info4DateTime)
            ->setInfo5DateTime($info5DateTime)
            ->setInfo1($info1)
            ->setInfo2($info2)
            ->setInfo3($info3)
            ->setInfo4($info4)
            ->setInfo5($info5);
    }
    /**
     * Get Info1DateTime value
     * @return string
     */
    public function getInfo1DateTime()
    {
        return $this->Info1DateTime;
    }
    /**
     * Set Info1DateTime value
     * @param string $info1DateTime
     * @return \StructType\VehicleInfoFields
     */
    public function setInfo1DateTime($info1DateTime = null)
    {
        // validation for constraint: string
        if (!is_null($info1DateTime) && !is_string($info1DateTime)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($info1DateTime, true), gettype($info1DateTime)), __LINE__);
        }
        $this->Info1DateTime = $info1DateTime;
        return $this;
    }
    /**
     * Get Info2DateTime value
     * @return string
     */
    public function getInfo2DateTime()
    {
        return $this->Info2DateTime;
    }
    /**
     * Set Info2DateTime value
     * @param string $info2DateTime
     * @return \StructType\VehicleInfoFields
     */
    public function setInfo2DateTime($info2DateTime = null)
    {
        // validation for constraint: string
        if (!is_null($info2DateTime) && !is_string($info2DateTime)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($info2DateTime, true), gettype($info2DateTime)), __LINE__);
        }
        $this->Info2DateTime = $info2DateTime;
        return $this;
    }
    /**
     * Get Info3DateTime value
     * @return string
     */
    public function getInfo3DateTime()
    {
        return $this->Info3DateTime;
    }
    /**
     * Set Info3DateTime value
     * @param string $info3DateTime
     * @return \StructType\VehicleInfoFields
     */
    public function setInfo3DateTime($info3DateTime = null)
    {
        // validation for constraint: string
        if (!is_null($info3DateTime) && !is_string($info3DateTime)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($info3DateTime, true), gettype($info3DateTime)), __LINE__);
        }
        $this->Info3DateTime = $info3DateTime;
        return $this;
    }
    /**
     * Get Info4DateTime value
     * @return string
     */
    public function getInfo4DateTime()
    {
        return $this->Info4DateTime;
    }
    /**
     * Set Info4DateTime value
     * @param string $info4DateTime
     * @return \StructType\VehicleInfoFields
     */
    public function setInfo4DateTime($info4DateTime = null)
    {
        // validation for constraint: string
        if (!is_null($info4DateTime) && !is_string($info4DateTime)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($info4DateTime, true), gettype($info4DateTime)), __LINE__);
        }
        $this->Info4DateTime = $info4DateTime;
        return $this;
    }
    /**
     * Get Info5DateTime value
     * @return string
     */
    public function getInfo5DateTime()
    {
        return $this->Info5DateTime;
    }
    /**
     * Set Info5DateTime value
     * @param string $info5DateTime
     * @return \StructType\VehicleInfoFields
     */
    public function setInfo5DateTime($info5DateTime = null)
    {
        // validation for constraint: string
        if (!is_null($info5DateTime) && !is_string($info5DateTime)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($info5DateTime, true), gettype($info5DateTime)), __LINE__);
        }
        $this->Info5DateTime = $info5DateTime;
        return $this;
    }
    /**
     * Get Info1 value
     * @return string|null
     */
    public function getInfo1()
    {
        return $this->Info1;
    }
    /**
     * Set Info1 value
     * @param string $info1
     * @return \StructType\VehicleInfoFields
     */
    public function setInfo1($info1 = null)
    {
        // validation for constraint: string
        if (!is_null($info1) && !is_string($info1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($info1, true), gettype($info1)), __LINE__);
        }
        $this->Info1 = $info1;
        return $this;
    }
    /**
     * Get Info2 value
     * @return string|null
     */
    public function getInfo2()
    {
        return $this->Info2;
    }
    /**
     * Set Info2 value
     * @param string $info2
     * @return \StructType\VehicleInfoFields
     */
    public function setInfo2($info2 = null)
    {
        // validation for constraint: string
        if (!is_null($info2) && !is_string($info2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($info2, true), gettype($info2)), __LINE__);
        }
        $this->Info2 = $info2;
        return $this;
    }
    /**
     * Get Info3 value
     * @return string|null
     */
    public function getInfo3()
    {
        return $this->Info3;
    }
    /**
     * Set Info3 value
     * @param string $info3
     * @return \StructType\VehicleInfoFields
     */
    public function setInfo3($info3 = null)
    {
        // validation for constraint: string
        if (!is_null($info3) && !is_string($info3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($info3, true), gettype($info3)), __LINE__);
        }
        $this->Info3 = $info3;
        return $this;
    }
    /**
     * Get Info4 value
     * @return string|null
     */
    public function getInfo4()
    {
        return $this->Info4;
    }
    /**
     * Set Info4 value
     * @param string $info4
     * @return \StructType\VehicleInfoFields
     */
    public function setInfo4($info4 = null)
    {
        // validation for constraint: string
        if (!is_null($info4) && !is_string($info4)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($info4, true), gettype($info4)), __LINE__);
        }
        $this->Info4 = $info4;
        return $this;
    }
    /**
     * Get Info5 value
     * @return string|null
     */
    public function getInfo5()
    {
        return $this->Info5;
    }
    /**
     * Set Info5 value
     * @param string $info5
     * @return \StructType\VehicleInfoFields
     */
    public function setInfo5($info5 = null)
    {
        // validation for constraint: string
        if (!is_null($info5) && !is_string($info5)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($info5, true), gettype($info5)), __LINE__);
        }
        $this->Info5 = $info5;
        return $this;
    }
}
