tags[] = '
';
        $this->tags[] = '';
    }
    public function endIteration()
    {
        $this->tags[] = '';
        $this->tags[] = '
';
    }
    public function beginChildren()
    {
        $this->tags[] = '';
        $currentSet = $this->getSubIterator();
        $state = $currentSet->getState() ? 'fulfilled' : (
            $currentSet->isOptional() ? 'not-available' : 'missing'
        );
        $colSpanRequired = $this->hasSingleRequirements($this->getSubIterator($this->getDepth() - 1));
        $this->tags[] = '| ';
        $this->beginIteration();
    }
    public function endChildren()
    {
        $this->endIteration();
        $this->tags[] = '';
        $this->tags[] = ' | 
';
    }
    protected function hasSingleRequirements(RequirementSet $requirements)
    {
        $set = $requirements->getAll();
        foreach ($set as $entry) {
            if ($entry instanceof Requirement) {
                return true;
            }
        }
        return false;
    }
    public function render()
    {
        foreach ($this as $requirement) {
            $this->tags[] = '';
            $this->tags[] = '| ';
            $this->tags[] = '' . $requirement->getTitle() . ' | ';
            $descriptions = $requirement->getDescriptions();
            if (count($descriptions) > 1) {
                $this->tags[] = ' ';
            $this->tags[] = '';
                foreach ($descriptions as $d) {
                    $this->tags[] = '';
            } elseif (! empty($descriptions)) {
                $this->tags[] = $descriptions[0];
            }
            $this->tags[] = '' . $d . '';
                }
                $this->tags[] = ' | ' . $requirement->getStateText() . '';
            $this->tags[] = ' | 
';
        }
        return implode("\n", $this->tags);
    }
    public function __toString()
    {
        return $this->render();
    }
}