PhpBench\Serializer\XmlDecoder::processSubject PHP Method

processSubject() private method

private processSubject ( Subject $subject, DOMElement $subjectEl, array $resultClasses )
$subject PhpBench\Model\Subject
$subjectEl DOMElement
$resultClasses array
    private function processSubject(Subject $subject, \DOMElement $subjectEl, array $resultClasses)
    {
        $groups = [];
        foreach ($subjectEl->query('./group') as $groupEl) {
            $groups[] = $groupEl->getAttribute('name');
        }
        $subject->setGroups($groups);
        // TODO: These attributes should be on the subject, see
        // https://github.com/phpbench/phpbench/issues/307
        foreach ($subjectEl->query('./variant') as $variantEl) {
            $subject->setSleep($variantEl->getAttribute('sleep'));
            $subject->setOutputTimeUnit($variantEl->getAttribute('output-time-unit'));
            $subject->setOutputTimePrecision($variantEl->getAttribute('output-time-precision'));
            $subject->setOutputMode($variantEl->getAttribute('output-mode'));
            $subject->setRetryThreshold($variantEl->getAttribute('retry-threshold'));
            break;
        }
        foreach ($subjectEl->query('./variant') as $index => $variantEl) {
            $parameters = $this->getParameters($variantEl);
            $parameterSet = new ParameterSet($index, $parameters);
            $stats = $this->getComputedStats($variantEl);
            $variant = $subject->createVariant($parameterSet, $variantEl->getAttribute('revs'), $variantEl->getAttribute('warmup'), $stats);
            $this->processVariant($variant, $variantEl, $resultClasses);
        }
    }