/home/techb158/dev.balacoffee.com/vendor/ramsey/uuid/src/Provider/Node
Edit: /home/techb158/dev.balacoffee.com/vendor/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php (1377B)
* @license http://opensource.org/licenses/MIT MIT
*/
declare(strict_types=1);
namespace Ramsey\Uuid\Provider\Node;
use Ramsey\Uuid\Exception\NodeException;
use Ramsey\Uuid\Provider\NodeProviderInterface;
use Ramsey\Uuid\Type\Hexadecimal;
/**
* FallbackNodeProvider retrieves the system node ID by stepping through a list
* of providers until a node ID can be obtained
*/
class FallbackNodeProvider implements NodeProviderInterface
{
/**
* @param iterable
$providers Array of node providers
*/
public function __construct(private iterable $providers)
{
}
public function getNode(): Hexadecimal
{
$lastProviderException = null;
foreach ($this->providers as $provider) {
try {
return $provider->getNode();
} catch (NodeException $exception) {
$lastProviderException = $exception;
continue;
}
}
throw new NodeException(
'Unable to find a suitable node provider',
0,
$lastProviderException
);
}
}