<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for ActivityReportPathDetailSelection StructType
 * @subpackage Structs
 */
class ActivityReportPathDetailSelection extends AbstractStructBase
{
    /**
     * The IncludeCompensationCodes
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeCompensationCodes;
    /**
     * The IncludeTreatmentCodes
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeTreatmentCodes;
    /**
     * The IncludePalletCodes
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludePalletCodes;
    /**
     * The IncludeExtraInfoCodes
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeExtraInfoCodes;
    /**
     * The IncludeAnomalyCodes
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeAnomalyCodes;
    /**
     * The IncludeCostCodes
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeCostCodes;
    /**
     * The IncludeDataTypes
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeDataTypes;
    /**
     * The IncludeQuestionInformation
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeQuestionInformation;
    /**
     * Constructor method for ActivityReportPathDetailSelection
     * @uses ActivityReportPathDetailSelection::setIncludeCompensationCodes()
     * @uses ActivityReportPathDetailSelection::setIncludeTreatmentCodes()
     * @uses ActivityReportPathDetailSelection::setIncludePalletCodes()
     * @uses ActivityReportPathDetailSelection::setIncludeExtraInfoCodes()
     * @uses ActivityReportPathDetailSelection::setIncludeAnomalyCodes()
     * @uses ActivityReportPathDetailSelection::setIncludeCostCodes()
     * @uses ActivityReportPathDetailSelection::setIncludeDataTypes()
     * @uses ActivityReportPathDetailSelection::setIncludeQuestionInformation()
     * @param bool $includeCompensationCodes
     * @param bool $includeTreatmentCodes
     * @param bool $includePalletCodes
     * @param bool $includeExtraInfoCodes
     * @param bool $includeAnomalyCodes
     * @param bool $includeCostCodes
     * @param bool $includeDataTypes
     * @param bool $includeQuestionInformation
     */
    public function __construct($includeCompensationCodes = null, $includeTreatmentCodes = null, $includePalletCodes = null, $includeExtraInfoCodes = null, $includeAnomalyCodes = null, $includeCostCodes = null, $includeDataTypes = null, $includeQuestionInformation = null)
    {
        $this
            ->setIncludeCompensationCodes($includeCompensationCodes)
            ->setIncludeTreatmentCodes($includeTreatmentCodes)
            ->setIncludePalletCodes($includePalletCodes)
            ->setIncludeExtraInfoCodes($includeExtraInfoCodes)
            ->setIncludeAnomalyCodes($includeAnomalyCodes)
            ->setIncludeCostCodes($includeCostCodes)
            ->setIncludeDataTypes($includeDataTypes)
            ->setIncludeQuestionInformation($includeQuestionInformation);
    }
    /**
     * Get IncludeCompensationCodes value
     * @return bool
     */
    public function getIncludeCompensationCodes()
    {
        return $this->IncludeCompensationCodes;
    }
    /**
     * Set IncludeCompensationCodes value
     * @param bool $includeCompensationCodes
     * @return \StructType\ActivityReportPathDetailSelection
     */
    public function setIncludeCompensationCodes($includeCompensationCodes = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeCompensationCodes) && !is_bool($includeCompensationCodes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeCompensationCodes, true), gettype($includeCompensationCodes)), __LINE__);
        }
        $this->IncludeCompensationCodes = $includeCompensationCodes;
        return $this;
    }
    /**
     * Get IncludeTreatmentCodes value
     * @return bool
     */
    public function getIncludeTreatmentCodes()
    {
        return $this->IncludeTreatmentCodes;
    }
    /**
     * Set IncludeTreatmentCodes value
     * @param bool $includeTreatmentCodes
     * @return \StructType\ActivityReportPathDetailSelection
     */
    public function setIncludeTreatmentCodes($includeTreatmentCodes = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeTreatmentCodes) && !is_bool($includeTreatmentCodes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeTreatmentCodes, true), gettype($includeTreatmentCodes)), __LINE__);
        }
        $this->IncludeTreatmentCodes = $includeTreatmentCodes;
        return $this;
    }
    /**
     * Get IncludePalletCodes value
     * @return bool
     */
    public function getIncludePalletCodes()
    {
        return $this->IncludePalletCodes;
    }
    /**
     * Set IncludePalletCodes value
     * @param bool $includePalletCodes
     * @return \StructType\ActivityReportPathDetailSelection
     */
    public function setIncludePalletCodes($includePalletCodes = null)
    {
        // validation for constraint: boolean
        if (!is_null($includePalletCodes) && !is_bool($includePalletCodes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includePalletCodes, true), gettype($includePalletCodes)), __LINE__);
        }
        $this->IncludePalletCodes = $includePalletCodes;
        return $this;
    }
    /**
     * Get IncludeExtraInfoCodes value
     * @return bool
     */
    public function getIncludeExtraInfoCodes()
    {
        return $this->IncludeExtraInfoCodes;
    }
    /**
     * Set IncludeExtraInfoCodes value
     * @param bool $includeExtraInfoCodes
     * @return \StructType\ActivityReportPathDetailSelection
     */
    public function setIncludeExtraInfoCodes($includeExtraInfoCodes = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeExtraInfoCodes) && !is_bool($includeExtraInfoCodes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeExtraInfoCodes, true), gettype($includeExtraInfoCodes)), __LINE__);
        }
        $this->IncludeExtraInfoCodes = $includeExtraInfoCodes;
        return $this;
    }
    /**
     * Get IncludeAnomalyCodes value
     * @return bool
     */
    public function getIncludeAnomalyCodes()
    {
        return $this->IncludeAnomalyCodes;
    }
    /**
     * Set IncludeAnomalyCodes value
     * @param bool $includeAnomalyCodes
     * @return \StructType\ActivityReportPathDetailSelection
     */
    public function setIncludeAnomalyCodes($includeAnomalyCodes = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeAnomalyCodes) && !is_bool($includeAnomalyCodes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeAnomalyCodes, true), gettype($includeAnomalyCodes)), __LINE__);
        }
        $this->IncludeAnomalyCodes = $includeAnomalyCodes;
        return $this;
    }
    /**
     * Get IncludeCostCodes value
     * @return bool
     */
    public function getIncludeCostCodes()
    {
        return $this->IncludeCostCodes;
    }
    /**
     * Set IncludeCostCodes value
     * @param bool $includeCostCodes
     * @return \StructType\ActivityReportPathDetailSelection
     */
    public function setIncludeCostCodes($includeCostCodes = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeCostCodes) && !is_bool($includeCostCodes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeCostCodes, true), gettype($includeCostCodes)), __LINE__);
        }
        $this->IncludeCostCodes = $includeCostCodes;
        return $this;
    }
    /**
     * Get IncludeDataTypes value
     * @return bool
     */
    public function getIncludeDataTypes()
    {
        return $this->IncludeDataTypes;
    }
    /**
     * Set IncludeDataTypes value
     * @param bool $includeDataTypes
     * @return \StructType\ActivityReportPathDetailSelection
     */
    public function setIncludeDataTypes($includeDataTypes = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeDataTypes) && !is_bool($includeDataTypes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeDataTypes, true), gettype($includeDataTypes)), __LINE__);
        }
        $this->IncludeDataTypes = $includeDataTypes;
        return $this;
    }
    /**
     * Get IncludeQuestionInformation value
     * @return bool
     */
    public function getIncludeQuestionInformation()
    {
        return $this->IncludeQuestionInformation;
    }
    /**
     * Set IncludeQuestionInformation value
     * @param bool $includeQuestionInformation
     * @return \StructType\ActivityReportPathDetailSelection
     */
    public function setIncludeQuestionInformation($includeQuestionInformation = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeQuestionInformation) && !is_bool($includeQuestionInformation)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeQuestionInformation, true), gettype($includeQuestionInformation)), __LINE__);
        }
        $this->IncludeQuestionInformation = $includeQuestionInformation;
        return $this;
    }
}
