* @license http://opensource.org/licenses/MIT MIT */ declare (strict_types=1); namespace Dudlewebs\WPMCS\Ramsey\Uuid\Provider\Node; use Dudlewebs\WPMCS\Ramsey\Collection\AbstractCollection; use Dudlewebs\WPMCS\Ramsey\Uuid\Provider\NodeProviderInterface; use Dudlewebs\WPMCS\Ramsey\Uuid\Type\Hexadecimal; /** * A collection of NodeProviderInterface objects * * @extends AbstractCollection */ class NodeProviderCollection extends AbstractCollection { public function getType(): string { return NodeProviderInterface::class; } /** * Re-constructs the object from its serialized form * * @param string $serialized The serialized PHP string to unserialize into * a UuidInterface instance * * @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint * @psalm-suppress RedundantConditionGivenDocblockType */ public function unserialize($serialized): void { /** @var array $data */ $data = unserialize($serialized, ['allowed_classes' => [Hexadecimal::class, RandomNodeProvider::class, StaticNodeProvider::class, SystemNodeProvider::class]]); $this->data = array_filter($data, function ($unserialized): bool { return $unserialized instanceof NodeProviderInterface; }); } }