<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for TextMessageReadSelection StructType
 * @subpackage Structs
 */
class TextMessageReadSelection extends AbstractStructBase
{
    /**
     * The SetReadForAllDispatchers
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var bool
     */
    public $SetReadForAllDispatchers;
    /**
     * The MessageIDs
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \ArrayType\ArrayOfLong
     */
    public $MessageIDs;
    /**
     * Constructor method for TextMessageReadSelection
     * @uses TextMessageReadSelection::setSetReadForAllDispatchers()
     * @uses TextMessageReadSelection::setMessageIDs()
     * @param bool $setReadForAllDispatchers
     * @param \ArrayType\ArrayOfLong $messageIDs
     */
    public function __construct($setReadForAllDispatchers = null, \ArrayType\ArrayOfLong $messageIDs = null)
    {
        $this
            ->setSetReadForAllDispatchers($setReadForAllDispatchers)
            ->setMessageIDs($messageIDs);
    }
    /**
     * Get SetReadForAllDispatchers value
     * @return bool
     */
    public function getSetReadForAllDispatchers()
    {
        return $this->SetReadForAllDispatchers;
    }
    /**
     * Set SetReadForAllDispatchers value
     * @param bool $setReadForAllDispatchers
     * @return \StructType\TextMessageReadSelection
     */
    public function setSetReadForAllDispatchers($setReadForAllDispatchers = null)
    {
        // validation for constraint: boolean
        if (!is_null($setReadForAllDispatchers) && !is_bool($setReadForAllDispatchers)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($setReadForAllDispatchers, true), gettype($setReadForAllDispatchers)), __LINE__);
        }
        $this->SetReadForAllDispatchers = $setReadForAllDispatchers;
        return $this;
    }
    /**
     * Get MessageIDs value
     * @return \ArrayType\ArrayOfLong|null
     */
    public function getMessageIDs()
    {
        return $this->MessageIDs;
    }
    /**
     * Set MessageIDs value
     * @param \ArrayType\ArrayOfLong $messageIDs
     * @return \StructType\TextMessageReadSelection
     */
    public function setMessageIDs(\ArrayType\ArrayOfLong $messageIDs = null)
    {
        $this->MessageIDs = $messageIDs;
        return $this;
    }
}
