mirror of
https://github.com/barryvdh/ReflectionDocBlock.git
synced 2026-08-17 17:47:13 +00:00
Added generics to Context (#22)
This commit is contained in:
@@ -29,7 +29,10 @@ class Context
|
|||||||
|
|
||||||
/** @var string Name of the structural element, within the namespace. */
|
/** @var string Name of the structural element, within the namespace. */
|
||||||
protected $lsen = '';
|
protected $lsen = '';
|
||||||
|
|
||||||
|
/** @var string[] List of generics */
|
||||||
|
protected $generics = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cteates a new context.
|
* Cteates a new context.
|
||||||
* @param string $namespace The namespace where this DocBlock
|
* @param string $namespace The namespace where this DocBlock
|
||||||
@@ -42,13 +45,15 @@ class Context
|
|||||||
public function __construct(
|
public function __construct(
|
||||||
$namespace = '',
|
$namespace = '',
|
||||||
array $namespace_aliases = array(),
|
array $namespace_aliases = array(),
|
||||||
$lsen = ''
|
$lsen = '',
|
||||||
|
array $generics = array()
|
||||||
) {
|
) {
|
||||||
if (!empty($namespace)) {
|
if (!empty($namespace)) {
|
||||||
$this->setNamespace($namespace);
|
$this->setNamespace($namespace);
|
||||||
}
|
}
|
||||||
$this->setNamespaceAliases($namespace_aliases);
|
$this->setNamespaceAliases($namespace_aliases);
|
||||||
$this->setLSEN($lsen);
|
$this->setLSEN($lsen);
|
||||||
|
$this->setGenerics($generics);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -76,6 +81,16 @@ class Context
|
|||||||
{
|
{
|
||||||
return $this->lsen;
|
return $this->lsen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the list of generics.
|
||||||
|
*
|
||||||
|
* @return string[] List of generics
|
||||||
|
*/
|
||||||
|
public function getGenerics()
|
||||||
|
{
|
||||||
|
return $this->generics;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets a new namespace.
|
* Sets a new namespace.
|
||||||
@@ -151,4 +166,17 @@ class Context
|
|||||||
$this->lsen = (string)$lsen;
|
$this->lsen = (string)$lsen;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets a new list of generics.
|
||||||
|
*
|
||||||
|
* @param string[] $generics The new list of generics.
|
||||||
|
*
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setGenerics(array $generics)
|
||||||
|
{
|
||||||
|
$this->generics = $generics;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ class Collection extends \ArrayObject
|
|||||||
array $generics = array()
|
array $generics = array()
|
||||||
) {
|
) {
|
||||||
$this->context = null === $context ? new Context() : $context;
|
$this->context = null === $context ? new Context() : $context;
|
||||||
$this->generics = $generics;
|
$this->generics = array_merge($this->context->getGenerics(), $generics);
|
||||||
|
|
||||||
foreach ($types as $type) {
|
foreach ($types as $type) {
|
||||||
$this->add($type);
|
$this->add($type);
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ class CollectionTest extends TestCase
|
|||||||
{
|
{
|
||||||
$collection = new Collection(
|
$collection = new Collection(
|
||||||
array(),
|
array(),
|
||||||
new Context('\My\Space', array('Alias' => '\My\Space\Aliasing')),
|
new Context('\My\Space', array('Alias' => '\My\Space\Aliasing'), '', array('TParent')),
|
||||||
array('TValue')
|
array('TValue')
|
||||||
);
|
);
|
||||||
$collection->add($fixture);
|
$collection->add($fixture);
|
||||||
@@ -344,6 +344,7 @@ class CollectionTest extends TestCase
|
|||||||
array('TValue', array('TValue')),
|
array('TValue', array('TValue')),
|
||||||
array('TValue[]', array('TValue[]')),
|
array('TValue[]', array('TValue[]')),
|
||||||
array('TValue|DocBlock', array('TValue', $namespace . 'DocBlock')),
|
array('TValue|DocBlock', array('TValue', $namespace . 'DocBlock')),
|
||||||
|
array('TParent', array('TParent')),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user