<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for TachoReadoutResult StructType
 * @subpackage Structs
 */
class TachoReadoutResult extends ExecutionResult
{
    /**
     * The NextItemsAlreadyAvailable
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $NextItemsAlreadyAvailable;
    /**
     * The TachoReadoutItems
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \ArrayType\ArrayOfTachoReadoutItem
     */
    public $TachoReadoutItems;
    /**
     * Constructor method for TachoReadoutResult
     * @uses TachoReadoutResult::setNextItemsAlreadyAvailable()
     * @uses TachoReadoutResult::setTachoReadoutItems()
     * @param bool $nextItemsAlreadyAvailable
     * @param \ArrayType\ArrayOfTachoReadoutItem $tachoReadoutItems
     */
    public function __construct($nextItemsAlreadyAvailable = null, \ArrayType\ArrayOfTachoReadoutItem $tachoReadoutItems = null)
    {
        $this
            ->setNextItemsAlreadyAvailable($nextItemsAlreadyAvailable)
            ->setTachoReadoutItems($tachoReadoutItems);
    }
    /**
     * Get NextItemsAlreadyAvailable value
     * @return bool
     */
    public function getNextItemsAlreadyAvailable()
    {
        return $this->NextItemsAlreadyAvailable;
    }
    /**
     * Set NextItemsAlreadyAvailable value
     * @param bool $nextItemsAlreadyAvailable
     * @return \StructType\TachoReadoutResult
     */
    public function setNextItemsAlreadyAvailable($nextItemsAlreadyAvailable = null)
    {
        // validation for constraint: boolean
        if (!is_null($nextItemsAlreadyAvailable) && !is_bool($nextItemsAlreadyAvailable)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($nextItemsAlreadyAvailable, true), gettype($nextItemsAlreadyAvailable)), __LINE__);
        }
        $this->NextItemsAlreadyAvailable = $nextItemsAlreadyAvailable;
        return $this;
    }
    /**
     * Get TachoReadoutItems value
     * @return \ArrayType\ArrayOfTachoReadoutItem|null
     */
    public function getTachoReadoutItems()
    {
        return $this->TachoReadoutItems;
    }
    /**
     * Set TachoReadoutItems value
     * @param \ArrayType\ArrayOfTachoReadoutItem $tachoReadoutItems
     * @return \StructType\TachoReadoutResult
     */
    public function setTachoReadoutItems(\ArrayType\ArrayOfTachoReadoutItem $tachoReadoutItems = null)
    {
        $this->TachoReadoutItems = $tachoReadoutItems;
        return $this;
    }
}
