public function getDocBlock() {
    if ($this->docBlock === NULL) {
      $namespace = '\\';
      $aliases = array();
      /** @var NamespaceNode $namespace_node */
      $namespace_node = $this->closest(Filter::isInstanceOf('\Pharborist\Namespaces\NamespaceNode'));
      if ($namespace_node !== NULL) {
        $namespace = $namespace_node->getName() ? $namespace_node->getName()->getAbsolutePath() : '';
        $aliases = $namespace_node->getClassAliases();
      } else {
        /** @var RootNode $root_node */
        $root_node = $this->closest(Filter::isInstanceOf('\Pharborist\RootNode'));
        if ($root_node !== NULL) {
          $aliases = $root_node->getClassAliases();
        }
      }
      $context = new DocBlock\Context($namespace, $aliases);
      $this->docBlock = new DocBlock($this->text, $context);
    }
    return $this->docBlock;
  }