Deprecate BigNumberConverter and BigNumberTimeConverter

This commit is contained in:
Ben Ramsey
2020-01-09 13:24:19 -06:00
parent 9b2c93c5b5
commit 3546a86f7d
5 changed files with 94 additions and 205 deletions
+31 -21
View File
@@ -21,12 +21,12 @@ use Ramsey\Uuid\Builder\UuidBuilderInterface;
use Ramsey\Uuid\Codec\CodecInterface;
use Ramsey\Uuid\Codec\GuidStringCodec;
use Ramsey\Uuid\Codec\StringCodec;
use Ramsey\Uuid\Converter\Number\BigNumberConverter;
use Ramsey\Uuid\Converter\Number\DegradedNumberConverter;
use Ramsey\Uuid\Converter\Number\GenericNumberConverter;
use Ramsey\Uuid\Converter\Number\GmpConverter;
use Ramsey\Uuid\Converter\NumberConverterInterface;
use Ramsey\Uuid\Converter\Time\BigNumberTimeConverter;
use Ramsey\Uuid\Converter\Time\DegradedTimeConverter;
use Ramsey\Uuid\Converter\Time\GenericTimeConverter;
use Ramsey\Uuid\Converter\Time\GmpTimeConverter;
use Ramsey\Uuid\Converter\Time\PhpTimeConverter;
use Ramsey\Uuid\Converter\TimeConverterInterface;
@@ -38,6 +38,8 @@ use Ramsey\Uuid\Generator\TimeGeneratorInterface;
use Ramsey\Uuid\Guid\DegradedGuidBuilder;
use Ramsey\Uuid\Guid\GuidBuilder;
use Ramsey\Uuid\Nonstandard\DegradedUuidBuilder as NonstandardDegradedUuidBuilder;
use Ramsey\Uuid\Math\BrickMathCalculator;
use Ramsey\Uuid\Math\CalculatorInterface;
use Ramsey\Uuid\Nonstandard\UuidBuilder as NonstandardUuidBuilder;
use Ramsey\Uuid\Provider\Node\FallbackNodeProvider;
use Ramsey\Uuid\Provider\Node\RandomNodeProvider;
@@ -121,6 +123,11 @@ class FeatureSet
*/
private $validator;
/**
* @var CalculatorInterface
*/
private $calculator;
/**
* @param bool $useGuids True build UUIDs using the GuidStringCodec
* @param bool $force32Bit True to force the use of 32-bit functionality
@@ -148,6 +155,7 @@ class FeatureSet
$this->ignoreSystemNode = $ignoreSystemNode;
$this->enablePecl = $enablePecl;
$this->calculator = new BrickMathCalculator();
$this->numberConverter = $this->buildNumberConverter();
$this->timeConverter = $this->buildTimeConverter();
$this->builder = $this->buildUuidBuilder($useGuids);
@@ -166,6 +174,14 @@ class FeatureSet
return $this->builder;
}
/**
* Returns the calculator configured for this environment
*/
public function getCalculator(): CalculatorInterface
{
return $this->calculator;
}
/**
* Returns the codec configured for this environment
*/
@@ -214,6 +230,14 @@ class FeatureSet
return $this->validator;
}
/**
* Sets the calculator to use in this environment
*/
public function setCalculator(CalculatorInterface $calculator): void
{
$this->calculator = $calculator;
}
/**
* Sets the time provider to use in this environment
*/
@@ -264,15 +288,7 @@ class FeatureSet
*/
private function buildNumberConverter(): NumberConverterInterface
{
if ($this->hasGmp()) {
return new GmpConverter();
}
if ($this->hasBigNumber()) {
return new BigNumberConverter();
}
return new DegradedNumberConverter();
return new GenericNumberConverter($this->getCalculator());
}
/**
@@ -307,19 +323,13 @@ class FeatureSet
*/
private function buildTimeConverter(): TimeConverterInterface
{
$genericConverter = new GenericTimeConverter($this->getCalculator());
if ($this->is64BitSystem()) {
return new PhpTimeConverter();
return new PhpTimeConverter($genericConverter);
}
if ($this->hasGmp()) {
return new GmpTimeConverter();
}
if ($this->hasBigNumber()) {
return new BigNumberTimeConverter();
}
return new DegradedTimeConverter();
return $genericConverter;
}
/**