PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 6.3.0
Defender Security – Malware Scanner, Login Security & Firewall v6.3.0
6.3.0 6.2.3 6.2.4 6.2.0 6.2.1 6.2.2 6.1.0 5.3.1 5.4.0 5.4.1 5.5.0 5.5.1 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.7.2 5.8.0 5.8.1 5.9.0 6.0.0 6.0.1 3.0.1 3.1.0 All 141 releases
defender-security / lib / packages / Ramsey / Uuid / Builder / FallbackBuilder.php

FallbackBuilder.php in Defender Security – Malware Scanner, Login Security & Firewall 6.3.0, at lib/packages/Ramsey/Uuid/Builder/FallbackBuilder.php

67 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 WP_DEFENDER_VENDOR\Ramsey\Uuid\Builder;
16
17 use WP_DEFENDER_VENDOR\Ramsey\Uuid\Codec\CodecInterface;
18 use WP_DEFENDER_VENDOR\Ramsey\Uuid\Exception\BuilderNotFoundException;
19 use WP_DEFENDER_VENDOR\Ramsey\Uuid\Exception\UnableToBuildUuidException;
20 use WP_DEFENDER_VENDOR\Ramsey\Uuid\UuidInterface;
21
22 /**
23 * FallbackBuilder builds a UUID by stepping through a list of UUID builders until a UUID can be constructed without exceptions
24 *
25 * @immutable
26 */
27 class FallbackBuilder implements UuidBuilderInterface
28 {
29 /**
30 * @param iterable<UuidBuilderInterface> $builders An array of UUID builders
31 */
32 public function __construct(private iterable $builders)
33 {
34 }
35
36 /**
37 * Builds and returns a UuidInterface instance using the first builder that succeeds
38 *
39 * @param CodecInterface $codec The codec to use for building this instance
40 * @param string $bytes The byte string from which to construct a UUID
41 *
42 * @return UuidInterface an instance of a UUID object
43 *
44 * @pure
45 */
46 public function build(CodecInterface $codec, string $bytes): UuidInterface
47 {
48 $lastBuilderException = null;
49
50 foreach ($this->builders as $builder) {
51 try {
52 return $builder->build($codec, $bytes);
53 } catch (UnableToBuildUuidException $exception) {
54 $lastBuilderException = $exception;
55
56 continue;
57 }
58 }
59
60 throw new BuilderNotFoundException(
61 'Could not find a suitable builder for the provided codec and fields',
62 0,
63 $lastBuilderException,
64 );
65 }
66 }
67