PluginProbe
WCPOS – Point of Sale (POS) plugin for WooCommerce / 1.10.21
WCPOS – Point of Sale (POS) plugin for WooCommerce v1.10.21
1.10.24 1.10.23 1.10.22 1.10.21 1.10.20 1.10.19 1.10.18 1.10.17 1.10.16 1.10.15 1.10.13 1.10.14 1.10.12 1.10.11 1.10.10 1.10.9 1.10.8 untagged-3d9b7ccddc54df87c672 1.10.7 1.10.6 1.10.5 1.10.3 1.10.4 1.10.2 1.10.1 All 168 releases
woocommerce-pos / vendor / ramsey / uuid / src / Builder / FallbackBuilder.php

FallbackBuilder.php in WCPOS – Point of Sale (POS) plugin for WooCommerce 1.10.21, at vendor/ramsey/uuid/src/Builder/FallbackBuilder.php

75 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * This file is part of the ramsey/uuid library
5 *
6 * For the full copyright and license information, please view the LICENSE
7 * file that was distributed with this source code.
8 *
9 * @copyright Copyright (c) Ben Ramsey <[email protected]>
10 * @license http://opensource.org/licenses/MIT MIT
11 */
12
13 declare(strict_types=1);
14
15 namespace Ramsey\Uuid\Builder;
16
17 use Ramsey\Uuid\Codec\CodecInterface;
18 use Ramsey\Uuid\Exception\BuilderNotFoundException;
19 use Ramsey\Uuid\Exception\UnableToBuildUuidException;
20 use Ramsey\Uuid\UuidInterface;
21
22 /**
23 * FallbackBuilder builds a UUID by stepping through a list of UUID builders
24 * until a UUID can be constructed without exceptions
25 *
26 * @psalm-immutable
27 */
28 class FallbackBuilder implements UuidBuilderInterface
29 {
30 /**
31 * @var BuilderCollection
32 */
33 private $builders;
34
35 /**
36 * @param BuilderCollection $builders An array of UUID builders
37 */
38 public function __construct(BuilderCollection $builders)
39 {
40 $this->builders = $builders;
41 }
42
43 /**
44 * Builds and returns a UuidInterface instance using the first builder that
45 * succeeds
46 *
47 * @param CodecInterface $codec The codec to use for building this instance
48 * @param string $bytes The byte string from which to construct a UUID
49 *
50 * @return UuidInterface an instance of a UUID object
51 *
52 * @psalm-pure
53 */
54 public function build(CodecInterface $codec, string $bytes): UuidInterface
55 {
56 $lastBuilderException = null;
57
58 foreach ($this->builders as $builder) {
59 try {
60 return $builder->build($codec, $bytes);
61 } catch (UnableToBuildUuidException $exception) {
62 $lastBuilderException = $exception;
63
64 continue;
65 }
66 }
67
68 throw new BuilderNotFoundException(
69 'Could not find a suitable builder for the provided codec and fields',
70 0,
71 $lastBuilderException
72 );
73 }
74 }
75