Add getNames methods to managers

modifié:         core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilderManager.php
	modifié:         core/lib/Thelia/Core/FileFormat/Formatter/FormatterManager.php
This commit is contained in:
Benjamin Perche
2014-07-04 15:07:07 +02:00
parent d120e57684
commit 8418974e8e
2 changed files with 37 additions and 6 deletions

View File

@@ -20,6 +20,7 @@ use Thelia\Core\Translation\Translator;
*/ */
class ArchiveBuilderManager class ArchiveBuilderManager
{ {
/** @var array */
protected $archiveBuilders = array(); protected $archiveBuilders = array();
protected $environment; protected $environment;
@@ -29,15 +30,15 @@ class ArchiveBuilderManager
$this->environment = $environment; $this->environment = $environment;
} }
/** /**
* @param AbstractArchiveBuilder $archiveCreator * @param AbstractArchiveBuilder $archiveBuilder
* @return $this * @return $this
*/ */
public function add(AbstractArchiveBuilder $archiveCreator) public function add(AbstractArchiveBuilder $archiveBuilder)
{ {
if (null !== $archiveCreator) { if (null !== $archiveBuilder) {
$archiveCreator->setEnvironment($this->environment); $archiveBuilder->setEnvironment($this->environment);
$this->archiveBuilders[$archiveCreator->getName()] = $archiveCreator; $this->archiveBuilders[$archiveBuilder->getName()] = $archiveBuilder;
} }
return $this; return $this;
@@ -60,13 +61,28 @@ class ArchiveBuilderManager
} }
/** /**
* @return array[AbstractArchiveBuilder] * @return array
*/ */
public function getAll() public function getAll()
{ {
return $this->archiveBuilders; return $this->archiveBuilders;
} }
/**
* @return array
*/
public function getNames()
{
$names = [];
/** @var AbstractArchiveBuilder $builder */
foreach($this->archiveBuilders as $builder) {
$names[] = $builder->getName();
}
return $names;
}
public function get($name) public function get($name)
{ {
if (!array_key_exists($name, $this->archiveBuilders)) { if (!array_key_exists($name, $this->archiveBuilders)) {

View File

@@ -69,6 +69,21 @@ class FormatterManager
return $this->formatters; return $this->formatters;
} }
/**
* @return array
*/
public function getNames()
{
$names = [];
/** @var AbstractFormatter $formatter */
foreach($this->formatters as $formatter) {
$names[] = $formatter->getName();
}
return $names;
}
/** /**
* @param $name * @param $name
* @throws \OutOfBoundsException * @throws \OutOfBoundsException