<?php
/**
* Zend Framework (http://framework.zend.com/)
*
* @link http://github.com/zendframework/zf2 for the canonical source repository
* @copyright Copyright (c) 2005-2016 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
namespace Zend\Code\Generator\DocBlock\Tag;
use Zend\Code\Generator\AbstractGenerator;
use Zend\Code\Generic\Prototype\PrototypeGenericInterface;
use function ltrim;
class GenericTag extends AbstractGenerator implements TagInterface, PrototypeGenericInterface
{
/**
* @var string
*/
protected $name;
/**
* @var string
*/
protected $content;
/**
* @param string $name
* @param string $content
*/
public function __construct($name = null, $content = null)
{
if (! empty($name)) {
$this->setName($name);
}
if (! empty($content)) {
$this->setContent($content);
}
}
/**
* @param string $name
* @return GenericTag
*/
public function setName($name)
{
$this->name = ltrim($name, '@');
return $this;
}
/**
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @param string $content
* @return GenericTag
*/
public function setContent($content)
{
$this->content = $content;
return $this;
}
/**
* @return string
*/
public function getContent()
{
return $this->content;
}
/**
* @return string
*/
public function generate()
{
$output = '@' . $this->name
. (! empty($this->content) ? ' ' . $this->content : '');
return $output;
}
}