LDAPAccountManager/lam/lib/3rdParty/composer/spomky-labs/cbor-php/src/OtherObject/SimpleObject.php

55 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
/*
* The MIT License (MIT)
*
* Copyright (c) 2018 Spomky-Labs
*
* This software may be modified and distributed under the terms
* of the MIT license. See the LICENSE file for details.
*/
namespace CBOR\OtherObject;
use CBOR\OtherObject as Base;
use InvalidArgumentException;
final class SimpleObject extends Base
{
public static function supportedAdditionalInformation(): array
{
return [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 24];
}
public static function createFromLoadedData(int $additionalInformation, ?string $data): Base
{
return new self($additionalInformation, $data);
}
public function getNormalizedData(bool $ignoreTags = false)
{
if (null === $this->data) {
return $this->getAdditionalInformation();
}
return gmp_intval(gmp_init(bin2hex($this->data), 16));
}
/**
* @return SimpleObject
*/
public static function create(int $value): self
{
switch (true) {
case $value < 24:
return new self($value, null);
case $value < 256:
return new self(24, \chr($value));
default:
throw new InvalidArgumentException('The value is not a valid simple value');
}
}
}