<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VehicleSelection_With_NextStop_Info_And_VehicleProfile
 * StructType
 * @subpackage Structs
 */
class VehicleSelection_With_NextStop_Info_And_VehicleProfile extends VehicleSelection_With_NextStop_Info
{
    /**
     * The IncludeVehicleProfile
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeVehicleProfile;
    /**
     * The IncludeDiagnostics
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeDiagnostics;
    /**
     * Constructor method for VehicleSelection_With_NextStop_Info_And_VehicleProfile
     * @uses VehicleSelection_With_NextStop_Info_And_VehicleProfile::setIncludeVehicleProfile()
     * @uses VehicleSelection_With_NextStop_Info_And_VehicleProfile::setIncludeDiagnostics()
     * @param bool $includeVehicleProfile
     * @param bool $includeDiagnostics
     */
    public function __construct($includeVehicleProfile = null, $includeDiagnostics = null)
    {
        $this
            ->setIncludeVehicleProfile($includeVehicleProfile)
            ->setIncludeDiagnostics($includeDiagnostics);
    }
    /**
     * Get IncludeVehicleProfile value
     * @return bool
     */
    public function getIncludeVehicleProfile()
    {
        return $this->IncludeVehicleProfile;
    }
    /**
     * Set IncludeVehicleProfile value
     * @param bool $includeVehicleProfile
     * @return \StructType\VehicleSelection_With_NextStop_Info_And_VehicleProfile
     */
    public function setIncludeVehicleProfile($includeVehicleProfile = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeVehicleProfile) && !is_bool($includeVehicleProfile)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeVehicleProfile, true), gettype($includeVehicleProfile)), __LINE__);
        }
        $this->IncludeVehicleProfile = $includeVehicleProfile;
        return $this;
    }
    /**
     * Get IncludeDiagnostics value
     * @return bool
     */
    public function getIncludeDiagnostics()
    {
        return $this->IncludeDiagnostics;
    }
    /**
     * Set IncludeDiagnostics value
     * @param bool $includeDiagnostics
     * @return \StructType\VehicleSelection_With_NextStop_Info_And_VehicleProfile
     */
    public function setIncludeDiagnostics($includeDiagnostics = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeDiagnostics) && !is_bool($includeDiagnostics)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeDiagnostics, true), gettype($includeDiagnostics)), __LINE__);
        }
        $this->IncludeDiagnostics = $includeDiagnostics;
        return $this;
    }
}
