Files
ezmigrationbundle/Core/ReferenceResolver/ChainResolver.php
T

50 lines
1.2 KiB
PHP

<?php
namespace Kaliop\eZMigrationBundle\Core\ReferenceResolver;
use Kaliop\eZMigrationBundle\API\ReferenceResolverInterface;
class ChainResolver implements ReferenceResolverInterface
{
/** @var ReferenceResolverInterface[] $resolvers */
protected $resolvers = array();
/**
* ChainResolver constructor.
* @param ReferenceResolverInterface[] $resolvers
*/
public function __construct(array $resolvers)
{
$this->resolvers = $resolvers;
}
/**
* @param string $stringIdentifier
* @return bool
*/
public function isReference($stringIdentifier)
{
foreach ($this->resolvers as $resolver) {
if ($resolver->isReference($stringIdentifier)) {
return true;
}
}
return false;
}
/**
* @param string $stringIdentifier
* @return mixed
*/
public function getReferenceValue($stringIdentifier)
{
foreach ($this->resolvers as $resolver) {
if ($resolver->isReference($stringIdentifier)) {
return $resolver->getReferenceValue($stringIdentifier);
}
}
throw \Exception("Could not resolve reference with identifier: '$stringIdentifier'");
}
}