TheSeer\phpDox\Collector\Project::getUnitByName PHP Method

getUnitByName() public method

public getUnitByName ( $name ) : TheSeer\fDOM\fDOMElement
$name
return TheSeer\fDOM\fDOMElement
    public function getUnitByName($name)
    {
        if (isset($this->loadedUnits[$name])) {
            return $this->loadedUnits[$name];
        }
        $parts = explode('\\', $name);
        $local = array_pop($parts);
        $namespace = join('\\', $parts);
        $indexNode = $this->index->findUnitNodeByName($namespace, $local);
        if (!$indexNode) {
            throw new ProjectException("No unit with name '{$name}' found");
        }
        switch ($indexNode->localName) {
            case 'interface':
                $unit = new InterfaceObject();
                break;
            case 'trait':
                $unit = new TraitObject();
                break;
            case 'class':
                $unit = new ClassObject();
                break;
            default:
                throw new ProjectException(sprintf('Unexpected type "%s"', $indexNode->localName), ProjectException::UnexpectedType);
        }
        $dom = new fDOMDocument();
        $dom->load($this->xmlDir . '/' . $indexNode->getAttribute('xml'));
        $unit->import($dom);
        return $unit;
    }