<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VehicleSoftwareInformation StructType
 * @subpackage Structs
 */
class VehicleSoftwareInformation extends AbstractStructBase
{
    /**
     * The Enable_Trips
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var bool
     */
    public $Enable_Trips;
    /**
     * The Enable_Jobs
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var bool
     */
    public $Enable_Jobs;
    /**
     * The Enable_Places
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var bool
     */
    public $Enable_Places;
    /**
     * The Enable_Products
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var bool
     */
    public $Enable_Products;
    /**
     * Constructor method for VehicleSoftwareInformation
     * @uses VehicleSoftwareInformation::setEnable_Trips()
     * @uses VehicleSoftwareInformation::setEnable_Jobs()
     * @uses VehicleSoftwareInformation::setEnable_Places()
     * @uses VehicleSoftwareInformation::setEnable_Products()
     * @param bool $enable_Trips
     * @param bool $enable_Jobs
     * @param bool $enable_Places
     * @param bool $enable_Products
     */
    public function __construct($enable_Trips = null, $enable_Jobs = null, $enable_Places = null, $enable_Products = null)
    {
        $this
            ->setEnable_Trips($enable_Trips)
            ->setEnable_Jobs($enable_Jobs)
            ->setEnable_Places($enable_Places)
            ->setEnable_Products($enable_Products);
    }
    /**
     * Get Enable_Trips value
     * @return bool
     */
    public function getEnable_Trips()
    {
        return $this->Enable_Trips;
    }
    /**
     * Set Enable_Trips value
     * @param bool $enable_Trips
     * @return \StructType\VehicleSoftwareInformation
     */
    public function setEnable_Trips($enable_Trips = null)
    {
        // validation for constraint: boolean
        if (!is_null($enable_Trips) && !is_bool($enable_Trips)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($enable_Trips, true), gettype($enable_Trips)), __LINE__);
        }
        $this->Enable_Trips = $enable_Trips;
        return $this;
    }
    /**
     * Get Enable_Jobs value
     * @return bool
     */
    public function getEnable_Jobs()
    {
        return $this->Enable_Jobs;
    }
    /**
     * Set Enable_Jobs value
     * @param bool $enable_Jobs
     * @return \StructType\VehicleSoftwareInformation
     */
    public function setEnable_Jobs($enable_Jobs = null)
    {
        // validation for constraint: boolean
        if (!is_null($enable_Jobs) && !is_bool($enable_Jobs)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($enable_Jobs, true), gettype($enable_Jobs)), __LINE__);
        }
        $this->Enable_Jobs = $enable_Jobs;
        return $this;
    }
    /**
     * Get Enable_Places value
     * @return bool
     */
    public function getEnable_Places()
    {
        return $this->Enable_Places;
    }
    /**
     * Set Enable_Places value
     * @param bool $enable_Places
     * @return \StructType\VehicleSoftwareInformation
     */
    public function setEnable_Places($enable_Places = null)
    {
        // validation for constraint: boolean
        if (!is_null($enable_Places) && !is_bool($enable_Places)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($enable_Places, true), gettype($enable_Places)), __LINE__);
        }
        $this->Enable_Places = $enable_Places;
        return $this;
    }
    /**
     * Get Enable_Products value
     * @return bool
     */
    public function getEnable_Products()
    {
        return $this->Enable_Products;
    }
    /**
     * Set Enable_Products value
     * @param bool $enable_Products
     * @return \StructType\VehicleSoftwareInformation
     */
    public function setEnable_Products($enable_Products = null)
    {
        // validation for constraint: boolean
        if (!is_null($enable_Products) && !is_bool($enable_Products)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($enable_Products, true), gettype($enable_Products)), __LINE__);
        }
        $this->Enable_Products = $enable_Products;
        return $this;
    }
}
