protected function collectClassData($item, array $data, \ReflectionClass $reflector): array
    {
        foreach ($this->getClassVariants($reflector, $item) as $name)
        {
            $key = $this->getItemKey($name);

            if (!array_key_exists($key, $data['data']) || $this->isItemGreedy($data['data'][$key], $reflector, $item))
                $data = $this->addClassData($data, $key, $reflector, $item, $name);
        }

        return $data;
    }