<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for PersonSelection_V3 StructType
 * @subpackage Structs
 */
class PersonSelection_V3 extends PersonSelection
{
    /**
     * The IncludeInactiveDrivers
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeInactiveDrivers;
    /**
     * The IncludeUpdateDates
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeUpdateDates;
    /**
     * Constructor method for PersonSelection_V3
     * @uses PersonSelection_V3::setIncludeInactiveDrivers()
     * @uses PersonSelection_V3::setIncludeUpdateDates()
     * @param bool $includeInactiveDrivers
     * @param bool $includeUpdateDates
     */
    public function __construct($includeInactiveDrivers = null, $includeUpdateDates = null)
    {
        $this
            ->setIncludeInactiveDrivers($includeInactiveDrivers)
            ->setIncludeUpdateDates($includeUpdateDates);
    }
    /**
     * Get IncludeInactiveDrivers value
     * @return bool
     */
    public function getIncludeInactiveDrivers()
    {
        return $this->IncludeInactiveDrivers;
    }
    /**
     * Set IncludeInactiveDrivers value
     * @param bool $includeInactiveDrivers
     * @return \StructType\PersonSelection_V3
     */
    public function setIncludeInactiveDrivers($includeInactiveDrivers = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeInactiveDrivers) && !is_bool($includeInactiveDrivers)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeInactiveDrivers, true), gettype($includeInactiveDrivers)), __LINE__);
        }
        $this->IncludeInactiveDrivers = $includeInactiveDrivers;
        return $this;
    }
    /**
     * Get IncludeUpdateDates value
     * @return bool
     */
    public function getIncludeUpdateDates()
    {
        return $this->IncludeUpdateDates;
    }
    /**
     * Set IncludeUpdateDates value
     * @param bool $includeUpdateDates
     * @return \StructType\PersonSelection_V3
     */
    public function setIncludeUpdateDates($includeUpdateDates = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeUpdateDates) && !is_bool($includeUpdateDates)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeUpdateDates, true), gettype($includeUpdateDates)), __LINE__);
        }
        $this->IncludeUpdateDates = $includeUpdateDates;
        return $this;
    }
}
