<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for ActivityReportSelection_V6 StructType
 * @subpackage Structs
 */
class ActivityReportSelection_V6 extends AbstractStructBase
{
    /**
     * The ExcludeCodriver
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $ExcludeCodriver;
    /**
     * The IncludeRemarks
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeRemarks;
    /**
     * The IncludeRegistrations
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeRegistrations;
    /**
     * The IncludeUnplannedPlanningInfo
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeUnplannedPlanningInfo;
    /**
     * The IncludeInfoFields
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeInfoFields;
    /**
     * The Drivers
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \ArrayType\ArrayOfIdentifier
     */
    public $Drivers;
    /**
     * The Vehicles
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \ArrayType\ArrayOfIdentifierVehicle
     */
    public $Vehicles;
    /**
     * The Activities
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \ArrayType\ArrayOfActivity
     */
    public $Activities;
    /**
     * The Reference
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $Reference;
    /**
     * The TripID
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $TripID;
    /**
     * The InfoField
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \StructType\ActivityInfoFieldSelection
     */
    public $InfoField;
    /**
     * The DateStrategySelection
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \StructType\DateStrategySelection
     */
    public $DateStrategySelection;
    /**
     * Constructor method for ActivityReportSelection_V6
     * @uses ActivityReportSelection_V6::setExcludeCodriver()
     * @uses ActivityReportSelection_V6::setIncludeRemarks()
     * @uses ActivityReportSelection_V6::setIncludeRegistrations()
     * @uses ActivityReportSelection_V6::setIncludeUnplannedPlanningInfo()
     * @uses ActivityReportSelection_V6::setIncludeInfoFields()
     * @uses ActivityReportSelection_V6::setDrivers()
     * @uses ActivityReportSelection_V6::setVehicles()
     * @uses ActivityReportSelection_V6::setActivities()
     * @uses ActivityReportSelection_V6::setReference()
     * @uses ActivityReportSelection_V6::setTripID()
     * @uses ActivityReportSelection_V6::setInfoField()
     * @uses ActivityReportSelection_V6::setDateStrategySelection()
     * @param bool $excludeCodriver
     * @param bool $includeRemarks
     * @param bool $includeRegistrations
     * @param bool $includeUnplannedPlanningInfo
     * @param bool $includeInfoFields
     * @param \ArrayType\ArrayOfIdentifier $drivers
     * @param \ArrayType\ArrayOfIdentifierVehicle $vehicles
     * @param \ArrayType\ArrayOfActivity $activities
     * @param string $reference
     * @param string $tripID
     * @param \StructType\ActivityInfoFieldSelection $infoField
     * @param \StructType\DateStrategySelection $dateStrategySelection
     */
    public function __construct($excludeCodriver = null, $includeRemarks = null, $includeRegistrations = null, $includeUnplannedPlanningInfo = null, $includeInfoFields = null, \ArrayType\ArrayOfIdentifier $drivers = null, \ArrayType\ArrayOfIdentifierVehicle $vehicles = null, \ArrayType\ArrayOfActivity $activities = null, $reference = null, $tripID = null, \StructType\ActivityInfoFieldSelection $infoField = null, \StructType\DateStrategySelection $dateStrategySelection = null)
    {
        $this
            ->setExcludeCodriver($excludeCodriver)
            ->setIncludeRemarks($includeRemarks)
            ->setIncludeRegistrations($includeRegistrations)
            ->setIncludeUnplannedPlanningInfo($includeUnplannedPlanningInfo)
            ->setIncludeInfoFields($includeInfoFields)
            ->setDrivers($drivers)
            ->setVehicles($vehicles)
            ->setActivities($activities)
            ->setReference($reference)
            ->setTripID($tripID)
            ->setInfoField($infoField)
            ->setDateStrategySelection($dateStrategySelection);
    }
    /**
     * Get ExcludeCodriver value
     * @return bool
     */
    public function getExcludeCodriver()
    {
        return $this->ExcludeCodriver;
    }
    /**
     * Set ExcludeCodriver value
     * @param bool $excludeCodriver
     * @return \StructType\ActivityReportSelection_V6
     */
    public function setExcludeCodriver($excludeCodriver = null)
    {
        // validation for constraint: boolean
        if (!is_null($excludeCodriver) && !is_bool($excludeCodriver)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($excludeCodriver, true), gettype($excludeCodriver)), __LINE__);
        }
        $this->ExcludeCodriver = $excludeCodriver;
        return $this;
    }
    /**
     * Get IncludeRemarks value
     * @return bool
     */
    public function getIncludeRemarks()
    {
        return $this->IncludeRemarks;
    }
    /**
     * Set IncludeRemarks value
     * @param bool $includeRemarks
     * @return \StructType\ActivityReportSelection_V6
     */
    public function setIncludeRemarks($includeRemarks = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeRemarks) && !is_bool($includeRemarks)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeRemarks, true), gettype($includeRemarks)), __LINE__);
        }
        $this->IncludeRemarks = $includeRemarks;
        return $this;
    }
    /**
     * Get IncludeRegistrations value
     * @return bool
     */
    public function getIncludeRegistrations()
    {
        return $this->IncludeRegistrations;
    }
    /**
     * Set IncludeRegistrations value
     * @param bool $includeRegistrations
     * @return \StructType\ActivityReportSelection_V6
     */
    public function setIncludeRegistrations($includeRegistrations = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeRegistrations) && !is_bool($includeRegistrations)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeRegistrations, true), gettype($includeRegistrations)), __LINE__);
        }
        $this->IncludeRegistrations = $includeRegistrations;
        return $this;
    }
    /**
     * Get IncludeUnplannedPlanningInfo value
     * @return bool
     */
    public function getIncludeUnplannedPlanningInfo()
    {
        return $this->IncludeUnplannedPlanningInfo;
    }
    /**
     * Set IncludeUnplannedPlanningInfo value
     * @param bool $includeUnplannedPlanningInfo
     * @return \StructType\ActivityReportSelection_V6
     */
    public function setIncludeUnplannedPlanningInfo($includeUnplannedPlanningInfo = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeUnplannedPlanningInfo) && !is_bool($includeUnplannedPlanningInfo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeUnplannedPlanningInfo, true), gettype($includeUnplannedPlanningInfo)), __LINE__);
        }
        $this->IncludeUnplannedPlanningInfo = $includeUnplannedPlanningInfo;
        return $this;
    }
    /**
     * Get IncludeInfoFields value
     * @return bool
     */
    public function getIncludeInfoFields()
    {
        return $this->IncludeInfoFields;
    }
    /**
     * Set IncludeInfoFields value
     * @param bool $includeInfoFields
     * @return \StructType\ActivityReportSelection_V6
     */
    public function setIncludeInfoFields($includeInfoFields = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeInfoFields) && !is_bool($includeInfoFields)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeInfoFields, true), gettype($includeInfoFields)), __LINE__);
        }
        $this->IncludeInfoFields = $includeInfoFields;
        return $this;
    }
    /**
     * Get Drivers value
     * @return \ArrayType\ArrayOfIdentifier|null
     */
    public function getDrivers()
    {
        return $this->Drivers;
    }
    /**
     * Set Drivers value
     * @param \ArrayType\ArrayOfIdentifier $drivers
     * @return \StructType\ActivityReportSelection_V6
     */
    public function setDrivers(\ArrayType\ArrayOfIdentifier $drivers = null)
    {
        $this->Drivers = $drivers;
        return $this;
    }
    /**
     * Get Vehicles value
     * @return \ArrayType\ArrayOfIdentifierVehicle|null
     */
    public function getVehicles()
    {
        return $this->Vehicles;
    }
    /**
     * Set Vehicles value
     * @param \ArrayType\ArrayOfIdentifierVehicle $vehicles
     * @return \StructType\ActivityReportSelection_V6
     */
    public function setVehicles(\ArrayType\ArrayOfIdentifierVehicle $vehicles = null)
    {
        $this->Vehicles = $vehicles;
        return $this;
    }
    /**
     * Get Activities value
     * @return \ArrayType\ArrayOfActivity|null
     */
    public function getActivities()
    {
        return $this->Activities;
    }
    /**
     * Set Activities value
     * @param \ArrayType\ArrayOfActivity $activities
     * @return \StructType\ActivityReportSelection_V6
     */
    public function setActivities(\ArrayType\ArrayOfActivity $activities = null)
    {
        $this->Activities = $activities;
        return $this;
    }
    /**
     * Get Reference value
     * @return string|null
     */
    public function getReference()
    {
        return $this->Reference;
    }
    /**
     * Set Reference value
     * @param string $reference
     * @return \StructType\ActivityReportSelection_V6
     */
    public function setReference($reference = null)
    {
        // validation for constraint: string
        if (!is_null($reference) && !is_string($reference)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($reference, true), gettype($reference)), __LINE__);
        }
        $this->Reference = $reference;
        return $this;
    }
    /**
     * Get TripID value
     * @return string|null
     */
    public function getTripID()
    {
        return $this->TripID;
    }
    /**
     * Set TripID value
     * @param string $tripID
     * @return \StructType\ActivityReportSelection_V6
     */
    public function setTripID($tripID = null)
    {
        // validation for constraint: string
        if (!is_null($tripID) && !is_string($tripID)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($tripID, true), gettype($tripID)), __LINE__);
        }
        $this->TripID = $tripID;
        return $this;
    }
    /**
     * Get InfoField value
     * @return \StructType\ActivityInfoFieldSelection|null
     */
    public function getInfoField()
    {
        return $this->InfoField;
    }
    /**
     * Set InfoField value
     * @param \StructType\ActivityInfoFieldSelection $infoField
     * @return \StructType\ActivityReportSelection_V6
     */
    public function setInfoField(\StructType\ActivityInfoFieldSelection $infoField = null)
    {
        $this->InfoField = $infoField;
        return $this;
    }
    /**
     * Get DateStrategySelection value
     * @return \StructType\DateStrategySelection|null
     */
    public function getDateStrategySelection()
    {
        return $this->DateStrategySelection;
    }
    /**
     * Set DateStrategySelection value
     * @param \StructType\DateStrategySelection $dateStrategySelection
     * @return \StructType\ActivityReportSelection_V6
     */
    public function setDateStrategySelection(\StructType\DateStrategySelection $dateStrategySelection = null)
    {
        $this->DateStrategySelection = $dateStrategySelection;
        return $this;
    }
}
