From 2ad77d9ca7ee8f98a1eca4ae336d79200dd424d4 Mon Sep 17 00:00:00 2001 From: Ben Ramsey Date: Mon, 13 Jan 2020 11:09:35 -0600 Subject: [PATCH] Remove CalculatorInterface as a Uuid constructor parameter --- CHANGELOG.md | 3 --- src/Builder/DefaultUuidBuilder.php | 15 ++------------- src/Builder/DegradedUuidBuilder.php | 16 ++-------------- src/FeatureSet.php | 6 +++--- src/Guid/Guid.php | 6 ++---- src/Guid/GuidBuilder.php | 15 ++------------- src/Nonstandard/Uuid.php | 6 ++---- src/Nonstandard/UuidBuilder.php | 15 ++------------- src/Uuid.php | 14 ++------------ tests/Builder/DefaultUuidBuilderTest.php | 4 +--- tests/Codec/GuidStringCodecTest.php | 7 ++----- tests/Codec/OrderedTimeCodecTest.php | 16 +++++----------- tests/UuidTest.php | 4 +--- 13 files changed, 26 insertions(+), 101 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61a5be8..c12b161 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -66,9 +66,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. * Introduce `Converter\TimeConverterInterface $timeConverter` as fourth required constructor parameter for `Uuid` and second required constructor parameter for `Builder\DefaultUuidBuilder`. -* Introduce `Math\CalculatorInterface $calculator` as the fifth required - constructor parameter for `Uuid` and the third required constructor parameter - for `Builder\DefaultUuidBuilder`. * Change `UuidInterface::getInteger()` to always return a `string` value instead of `mixed`. This is a string representation of a 128-bit integer. You may then use a math library of your choice (bcmath, gmp, etc.) to operate on the diff --git a/src/Builder/DefaultUuidBuilder.php b/src/Builder/DefaultUuidBuilder.php index 086c01e..85253c2 100644 --- a/src/Builder/DefaultUuidBuilder.php +++ b/src/Builder/DefaultUuidBuilder.php @@ -17,7 +17,6 @@ namespace Ramsey\Uuid\Builder; use Ramsey\Uuid\Codec\CodecInterface; use Ramsey\Uuid\Converter\NumberConverterInterface; use Ramsey\Uuid\Converter\TimeConverterInterface; -use Ramsey\Uuid\Math\CalculatorInterface; use Ramsey\Uuid\Rfc4122\Fields as Rfc4122Fields; use Ramsey\Uuid\Uuid; use Ramsey\Uuid\UuidInterface; @@ -39,11 +38,6 @@ class DefaultUuidBuilder implements UuidBuilderInterface */ private $timeConverter; - /** - * @var CalculatorInterface - */ - private $calculator; - /** * Constructs the DefaultUuidBuilder * @@ -51,17 +45,13 @@ class DefaultUuidBuilder implements UuidBuilderInterface * use when constructing the Uuid * @param TimeConverterInterface $timeConverter The time converter to use * for converting timestamps extracted from a UUID to Unix timestamps - * @param CalculatorInterface $calculator The calculator to use for - * performing mathematical operations on UUIDs */ public function __construct( NumberConverterInterface $numberConverter, - TimeConverterInterface $timeConverter, - CalculatorInterface $calculator + TimeConverterInterface $timeConverter ) { $this->numberConverter = $numberConverter; $this->timeConverter = $timeConverter; - $this->calculator = $calculator; } /** @@ -80,8 +70,7 @@ class DefaultUuidBuilder implements UuidBuilderInterface $fields, $this->numberConverter, $codec, - $this->timeConverter, - $this->calculator + $this->timeConverter ); } } diff --git a/src/Builder/DegradedUuidBuilder.php b/src/Builder/DegradedUuidBuilder.php index 907ab4a..6bf0884 100644 --- a/src/Builder/DegradedUuidBuilder.php +++ b/src/Builder/DegradedUuidBuilder.php @@ -19,8 +19,6 @@ use Ramsey\Uuid\Converter\NumberConverterInterface; use Ramsey\Uuid\Converter\Time\DegradedTimeConverter; use Ramsey\Uuid\Converter\TimeConverterInterface; use Ramsey\Uuid\DegradedUuid; -use Ramsey\Uuid\Math\BrickMathCalculator; -use Ramsey\Uuid\Math\CalculatorInterface; use Ramsey\Uuid\Rfc4122\Fields as Rfc4122Fields; use Ramsey\Uuid\UuidInterface; @@ -42,27 +40,18 @@ class DegradedUuidBuilder implements UuidBuilderInterface */ private $timeConverter; - /** - * @var CalculatorInterface - */ - private $calculator; - /** * @param NumberConverterInterface $numberConverter The number converter to * use when constructing the DegradedUuid * @param TimeConverterInterface|null $timeConverter The time converter to use * for converting timestamps extracted from a UUID to Unix timestamps - * @param CalculatorInterface|null $calculator The calculator to use for - * performing mathematical operations on UUIDs */ public function __construct( NumberConverterInterface $numberConverter, - ?TimeConverterInterface $timeConverter = null, - ?CalculatorInterface $calculator = null + ?TimeConverterInterface $timeConverter = null ) { $this->numberConverter = $numberConverter; $this->timeConverter = $timeConverter ?: new DegradedTimeConverter(); - $this->calculator = $calculator ?: new BrickMathCalculator(); } /** @@ -81,8 +70,7 @@ class DegradedUuidBuilder implements UuidBuilderInterface $fields, $this->numberConverter, $codec, - $this->timeConverter, - $this->calculator + $this->timeConverter ); } } diff --git a/src/FeatureSet.php b/src/FeatureSet.php index 90614a0..e9d18ba 100644 --- a/src/FeatureSet.php +++ b/src/FeatureSet.php @@ -324,12 +324,12 @@ class FeatureSet private function buildUuidBuilder(bool $useGuids = false): UuidBuilderInterface { if ($useGuids) { - return new GuidBuilder($this->numberConverter, $this->timeConverter, $this->calculator); + return new GuidBuilder($this->numberConverter, $this->timeConverter); } return new FallbackBuilder([ - new DefaultUuidBuilder($this->numberConverter, $this->timeConverter, $this->calculator), - new NonstandardUuidBuilder($this->numberConverter, $this->timeConverter, $this->calculator), + new DefaultUuidBuilder($this->numberConverter, $this->timeConverter), + new NonstandardUuidBuilder($this->numberConverter, $this->timeConverter), ]); } diff --git a/src/Guid/Guid.php b/src/Guid/Guid.php index 2107e67..ea5c165 100644 --- a/src/Guid/Guid.php +++ b/src/Guid/Guid.php @@ -17,7 +17,6 @@ namespace Ramsey\Uuid\Guid; use Ramsey\Uuid\Codec\CodecInterface; use Ramsey\Uuid\Converter\NumberConverterInterface; use Ramsey\Uuid\Converter\TimeConverterInterface; -use Ramsey\Uuid\Math\CalculatorInterface; use Ramsey\Uuid\Uuid; use Ramsey\Uuid\UuidInterface; @@ -41,9 +40,8 @@ class Guid extends Uuid implements UuidInterface Fields $fields, NumberConverterInterface $numberConverter, CodecInterface $codec, - TimeConverterInterface $timeConverter, - CalculatorInterface $calculator + TimeConverterInterface $timeConverter ) { - parent::__construct($fields, $numberConverter, $codec, $timeConverter, $calculator); + parent::__construct($fields, $numberConverter, $codec, $timeConverter); } } diff --git a/src/Guid/GuidBuilder.php b/src/Guid/GuidBuilder.php index 5451f98..e9824eb 100644 --- a/src/Guid/GuidBuilder.php +++ b/src/Guid/GuidBuilder.php @@ -18,7 +18,6 @@ use Ramsey\Uuid\Builder\UuidBuilderInterface; use Ramsey\Uuid\Codec\CodecInterface; use Ramsey\Uuid\Converter\NumberConverterInterface; use Ramsey\Uuid\Converter\TimeConverterInterface; -use Ramsey\Uuid\Math\CalculatorInterface; use Ramsey\Uuid\UuidInterface; /** @@ -38,27 +37,18 @@ class GuidBuilder implements UuidBuilderInterface */ private $timeConverter; - /** - * @var CalculatorInterface - */ - private $calculator; - /** * @param NumberConverterInterface $numberConverter The number converter to * use when constructing the Guid * @param TimeConverterInterface $timeConverter The time converter to use * for converting timestamps extracted from a UUID to Unix timestamps - * @param CalculatorInterface $calculator The calculator to use for - * performing mathematical operations on UUIDs */ public function __construct( NumberConverterInterface $numberConverter, - TimeConverterInterface $timeConverter, - CalculatorInterface $calculator + TimeConverterInterface $timeConverter ) { $this->numberConverter = $numberConverter; $this->timeConverter = $timeConverter; - $this->calculator = $calculator; } /** @@ -77,8 +67,7 @@ class GuidBuilder implements UuidBuilderInterface $fields, $this->numberConverter, $codec, - $this->timeConverter, - $this->calculator + $this->timeConverter ); } } diff --git a/src/Nonstandard/Uuid.php b/src/Nonstandard/Uuid.php index 68eb0a0..2ce66c9 100644 --- a/src/Nonstandard/Uuid.php +++ b/src/Nonstandard/Uuid.php @@ -17,7 +17,6 @@ namespace Ramsey\Uuid\Nonstandard; use Ramsey\Uuid\Codec\CodecInterface; use Ramsey\Uuid\Converter\NumberConverterInterface; use Ramsey\Uuid\Converter\TimeConverterInterface; -use Ramsey\Uuid\Math\CalculatorInterface; use Ramsey\Uuid\Uuid as Rfc4122Uuid; use Ramsey\Uuid\UuidInterface; @@ -32,9 +31,8 @@ class Uuid extends Rfc4122Uuid implements UuidInterface Fields $fields, NumberConverterInterface $numberConverter, CodecInterface $codec, - TimeConverterInterface $timeConverter, - CalculatorInterface $calculator + TimeConverterInterface $timeConverter ) { - parent::__construct($fields, $numberConverter, $codec, $timeConverter, $calculator); + parent::__construct($fields, $numberConverter, $codec, $timeConverter); } } diff --git a/src/Nonstandard/UuidBuilder.php b/src/Nonstandard/UuidBuilder.php index b351ea1..6092ac1 100644 --- a/src/Nonstandard/UuidBuilder.php +++ b/src/Nonstandard/UuidBuilder.php @@ -18,7 +18,6 @@ use Ramsey\Uuid\Builder\UuidBuilderInterface; use Ramsey\Uuid\Codec\CodecInterface; use Ramsey\Uuid\Converter\NumberConverterInterface; use Ramsey\Uuid\Converter\TimeConverterInterface; -use Ramsey\Uuid\Math\CalculatorInterface; use Ramsey\Uuid\UuidInterface; /** @@ -38,27 +37,18 @@ class UuidBuilder implements UuidBuilderInterface */ private $timeConverter; - /** - * @var CalculatorInterface - */ - private $calculator; - /** * @param NumberConverterInterface $numberConverter The number converter to * use when constructing the Nonstandard\Uuid * @param TimeConverterInterface $timeConverter The time converter to use * for converting timestamps extracted from a UUID to Unix timestamps - * @param CalculatorInterface $calculator The calculator to use for - * performing mathematical operations on UUIDs */ public function __construct( NumberConverterInterface $numberConverter, - TimeConverterInterface $timeConverter, - CalculatorInterface $calculator + TimeConverterInterface $timeConverter ) { $this->numberConverter = $numberConverter; $this->timeConverter = $timeConverter; - $this->calculator = $calculator; } /** @@ -78,8 +68,7 @@ class UuidBuilder implements UuidBuilderInterface $fields, $this->numberConverter, $codec, - $this->timeConverter, - $this->calculator + $this->timeConverter ); } } diff --git a/src/Uuid.php b/src/Uuid.php index 7d8db73..c44c4b1 100644 --- a/src/Uuid.php +++ b/src/Uuid.php @@ -22,7 +22,6 @@ use Ramsey\Uuid\Converter\TimeConverterInterface; use Ramsey\Uuid\Exception\DateTimeException; use Ramsey\Uuid\Exception\UnsupportedOperationException; use Ramsey\Uuid\Fields\FieldsInterface; -use Ramsey\Uuid\Math\CalculatorInterface; use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface; /** @@ -170,11 +169,6 @@ class Uuid implements UuidInterface */ protected $timeConverter; - /** - * @var CalculatorInterface - */ - protected $calculator; - /** * Creates a universally unique identifier (UUID) from an array of fields * @@ -198,21 +192,17 @@ class Uuid implements UuidInterface * UUID strings * @param TimeConverterInterface $timeConverter The time converter to use * for converting timestamps extracted from a UUID to unix timestamps - * @param CalculatorInterface $calculator The calculator to use for performing - * mathematical operations on UUIDs */ public function __construct( Rfc4122FieldsInterface $fields, NumberConverterInterface $numberConverter, CodecInterface $codec, - TimeConverterInterface $timeConverter, - CalculatorInterface $calculator + TimeConverterInterface $timeConverter ) { $this->fields = $fields; $this->codec = $codec; $this->numberConverter = $numberConverter; $this->timeConverter = $timeConverter; - $this->calculator = $calculator; } public function __toString(): string @@ -376,7 +366,7 @@ class Uuid implements UuidInterface } $unixTime = $this->timeConverter->convertTime( - $this->calculator->toIntegerValue($this->fields->getTimestamp())->toString() + $this->numberConverter->fromHex($this->fields->getTimestamp()->toString()) ); try { diff --git a/tests/Builder/DefaultUuidBuilderTest.php b/tests/Builder/DefaultUuidBuilderTest.php index a5102be..b36c51d 100644 --- a/tests/Builder/DefaultUuidBuilderTest.php +++ b/tests/Builder/DefaultUuidBuilderTest.php @@ -9,7 +9,6 @@ use Ramsey\Uuid\Builder\DefaultUuidBuilder; use Ramsey\Uuid\Codec\CodecInterface; use Ramsey\Uuid\Converter\NumberConverterInterface; use Ramsey\Uuid\Converter\TimeConverterInterface; -use Ramsey\Uuid\Math\CalculatorInterface; use Ramsey\Uuid\Test\TestCase; use Ramsey\Uuid\Uuid; @@ -19,10 +18,9 @@ class DefaultUuidBuilderTest extends TestCase { $numberConverter = Mockery::mock(NumberConverterInterface::class); $timeConverter = Mockery::mock(TimeConverterInterface::class); - $calculator = Mockery::mock(CalculatorInterface::class); $codec = Mockery::mock(CodecInterface::class); - $builder = new DefaultUuidBuilder($numberConverter, $timeConverter, $calculator); + $builder = new DefaultUuidBuilder($numberConverter, $timeConverter); $fields = [ 'time_low' => '754cd475', diff --git a/tests/Codec/GuidStringCodecTest.php b/tests/Codec/GuidStringCodecTest.php index f80a759..e766fa8 100644 --- a/tests/Codec/GuidStringCodecTest.php +++ b/tests/Codec/GuidStringCodecTest.php @@ -13,7 +13,6 @@ use Ramsey\Uuid\Converter\TimeConverterInterface; use Ramsey\Uuid\Guid\Fields; use Ramsey\Uuid\Guid\Guid; use Ramsey\Uuid\Guid\GuidBuilder; -use Ramsey\Uuid\Math\CalculatorInterface; use Ramsey\Uuid\Test\TestCase; use Ramsey\Uuid\UuidInterface; @@ -74,9 +73,8 @@ class GuidStringCodecTest extends TestCase $codec = new GuidStringCodec($this->builder); $numberConverter = Mockery::mock(NumberConverterInterface::class); $timeConverter = Mockery::mock(TimeConverterInterface::class); - $calculator = Mockery::mock(CalculatorInterface::class); - $uuid = new Guid($fields, $numberConverter, $codec, $timeConverter, $calculator); + $uuid = new Guid($fields, $numberConverter, $codec, $timeConverter); $bytes = $codec->encodeBinary($uuid); @@ -89,8 +87,7 @@ class GuidStringCodecTest extends TestCase $numberConverter = Mockery::mock(NumberConverterInterface::class); $timeConverter = Mockery::mock(TimeConverterInterface::class); - $calculator = Mockery::mock(CalculatorInterface::class); - $builder = new GuidBuilder($numberConverter, $timeConverter, $calculator); + $builder = new GuidBuilder($numberConverter, $timeConverter); $codec = new GuidStringCodec($builder); $guid = $codec->decode($string); diff --git a/tests/Codec/OrderedTimeCodecTest.php b/tests/Codec/OrderedTimeCodecTest.php index 799c8b2..b492506 100644 --- a/tests/Codec/OrderedTimeCodecTest.php +++ b/tests/Codec/OrderedTimeCodecTest.php @@ -13,7 +13,6 @@ use Ramsey\Uuid\Converter\NumberConverterInterface; use Ramsey\Uuid\Converter\TimeConverterInterface; use Ramsey\Uuid\Exception\InvalidArgumentException; use Ramsey\Uuid\Exception\UnsupportedOperationException; -use Ramsey\Uuid\Math\CalculatorInterface; use Ramsey\Uuid\Rfc4122\Fields; use Ramsey\Uuid\Test\TestCase; use Ramsey\Uuid\Uuid; @@ -85,8 +84,7 @@ class OrderedTimeCodecTest extends TestCase $numberConverter = Mockery::mock(NumberConverterInterface::class); $timeConverter = Mockery::mock(TimeConverterInterface::class); - $calculator = Mockery::mock(CalculatorInterface::class); - $builder = new DefaultUuidBuilder($numberConverter, $timeConverter, $calculator); + $builder = new DefaultUuidBuilder($numberConverter, $timeConverter); $codec = new OrderedTimeCodec($builder); $factory = new UuidFactory(); @@ -124,8 +122,7 @@ class OrderedTimeCodecTest extends TestCase $numberConverter = Mockery::mock(NumberConverterInterface::class); $timeConverter = Mockery::mock(TimeConverterInterface::class); - $calculator = Mockery::mock(CalculatorInterface::class); - $builder = new DefaultUuidBuilder($numberConverter, $timeConverter, $calculator); + $builder = new DefaultUuidBuilder($numberConverter, $timeConverter); $codec = new OrderedTimeCodec($builder); $factory = new UuidFactory(); @@ -143,8 +140,7 @@ class OrderedTimeCodecTest extends TestCase $numberConverter = Mockery::mock(NumberConverterInterface::class); $timeConverter = Mockery::mock(TimeConverterInterface::class); - $calculator = Mockery::mock(CalculatorInterface::class); - $builder = new DefaultUuidBuilder($numberConverter, $timeConverter, $calculator); + $builder = new DefaultUuidBuilder($numberConverter, $timeConverter); $codec = new OrderedTimeCodec($builder); $uuid = Mockery::mock(UuidInterface::class, [ @@ -166,8 +162,7 @@ class OrderedTimeCodecTest extends TestCase $numberConverter = Mockery::mock(NumberConverterInterface::class); $timeConverter = Mockery::mock(TimeConverterInterface::class); - $calculator = Mockery::mock(CalculatorInterface::class); - $builder = new DefaultUuidBuilder($numberConverter, $timeConverter, $calculator); + $builder = new DefaultUuidBuilder($numberConverter, $timeConverter); $codec = new OrderedTimeCodec($builder); $factory = new UuidFactory(); @@ -213,8 +208,7 @@ class OrderedTimeCodecTest extends TestCase $numberConverter = Mockery::mock(NumberConverterInterface::class); $timeConverter = Mockery::mock(TimeConverterInterface::class); - $calculator = Mockery::mock(CalculatorInterface::class); - $builder = new DefaultUuidBuilder($numberConverter, $timeConverter, $calculator); + $builder = new DefaultUuidBuilder($numberConverter, $timeConverter); $codec = new OrderedTimeCodec($builder); $factory = new UuidFactory(); diff --git a/tests/UuidTest.php b/tests/UuidTest.php index 9b8707a..594e9f1 100644 --- a/tests/UuidTest.php +++ b/tests/UuidTest.php @@ -24,7 +24,6 @@ use Ramsey\Uuid\Generator\CombGenerator; use Ramsey\Uuid\Generator\RandomGeneratorFactory; use Ramsey\Uuid\Generator\RandomGeneratorInterface; use Ramsey\Uuid\Guid\Guid; -use Ramsey\Uuid\Math\BrickMathCalculator; use Ramsey\Uuid\Provider\Time\FixedTimeProvider; use Ramsey\Uuid\Rfc4122\FieldsInterface; use Ramsey\Uuid\Type\Time; @@ -1408,14 +1407,13 @@ class UuidTest extends TestCase { $numberConverter = new BigNumberConverter(); $timeConverter = Mockery::mock(TimeConverterInterface::class); - $calculator = new BrickMathCalculator(); $timeConverter ->shouldReceive('convertTime') ->once() ->andReturn('foobar'); - $builder = new DefaultUuidBuilder($numberConverter, $timeConverter, $calculator); + $builder = new DefaultUuidBuilder($numberConverter, $timeConverter); $codec = new StringCodec($builder); $factory = new UuidFactory();