mirror of
https://github.com/JBDevLabs/ezmigrationbundle.git
synced 2026-04-29 19:03:11 +02:00
50 lines
1.2 KiB
PHP
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'");
|
|
}
|
|
} |