* @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com) * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock\Tags; use phpDocumentor\Reflection\DocBlock\Description; use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\Types\Context as TypeContext; use Webmozart\Assert\Assert; /** * Reflection class for a @link tag in a Docblock. */ final class Link extends BaseTag implements Factory\StaticMethod { protected $name = 'link'; /** @var string */ private $link = ''; /** * Initializes a link to a URL. * * @param string $link * @param Description $description */ public function __construct($link, Description $description = null) { Assert::string($link); $this->link = $link; $this->description = $description; } /** * {@inheritdoc} */ public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null) { Assert::string($body); Assert::notNull($descriptionFactory); $parts = preg_split('/\s+/Su', $body, 2); $description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null; return new static($parts[0], $description); } /** * Gets the link * * @return string */ public function getLink() { return $this->link; } /** * Returns a string representation for this tag. * * @return string */ public function __toString() { return $this->link . ($this->description ? ' ' . $this->description->render() : ''); } }