Introduce Converter namespace and move Number and Time classes into it

This commit is contained in:
Ben Ramsey
2014-11-08 14:43:09 -05:00
parent 61ba697853
commit cd2d09c356
16 changed files with 64 additions and 36 deletions
+2 -2
View File
@@ -2,7 +2,7 @@
namespace Rhumsaa\Uuid\Builder;
use Rhumsaa\Uuid\BigNumberConverter;
use Rhumsaa\Uuid\Converter\NumberConverterInterface;
use Rhumsaa\Uuid\Codec;
use Rhumsaa\Uuid\Uuid;
use Rhumsaa\Uuid\UuidBuilder;
@@ -12,7 +12,7 @@ class DefaultUuidBuilder implements UuidBuilder
private $converter;
public function __construct(BigNumberConverter $converter)
public function __construct(NumberConverterInterface $converter)
{
$this->converter = $converter;
}
+2 -2
View File
@@ -5,14 +5,14 @@ namespace Rhumsaa\Uuid\Builder;
use Rhumsaa\Uuid\UuidBuilder;
use Rhumsaa\Uuid\Codec;
use Rhumsaa\Uuid\DegradedUuid;
use Rhumsaa\Uuid\BigNumberConverter;
use Rhumsaa\Uuid\Converter\NumberConverterInterface;
class DegradedUuidBuilder implements UuidBuilder
{
private $converter;
public function __construct(BigNumberConverter $converter)
public function __construct(NumberConverterInterface $converter)
{
$this->converter = $converter;
}
@@ -1,8 +1,10 @@
<?php
namespace Rhumsaa\Uuid;
namespace Rhumsaa\Uuid\Converter\Number;
class BigNumberConverter
use Rhumsaa\Uuid\Converter\NumberConverterInterface;
class BigNumberConverter implements NumberConverterInterface
{
/**
* @param string $hex
@@ -1,12 +1,15 @@
<?php
namespace Rhumsaa\Uuid;
namespace Rhumsaa\Uuid\Converter\Number;
class DegradedNumberConverter extends BigNumberConverter
use Rhumsaa\Uuid\Exception\UnsatisfiedDependencyException;
use Rhumsaa\Uuid\Converter\NumberConverterInterface;
class DegradedNumberConverter extends BigNumberConverter implements NumberConverterInterface
{
public function fromHex($hex)
{
throw new Exception\UnsatisfiedDependencyException(
throw new UnsatisfiedDependencyException(
'Cannot call ' . __METHOD__ . ' without support for large '
. 'integers, since integer is an unsigned '
. '128-bit integer; Moontoast\Math\BigNumber is required.'
@@ -16,7 +19,7 @@ class DegradedNumberConverter extends BigNumberConverter
public function toHex($integer)
{
throw new Exception\UnsatisfiedDependencyException(
throw new UnsatisfiedDependencyException(
'Cannot call ' . __METHOD__ . ' without support for large '
. 'integers, since integer is an unsigned '
. '128-bit integer; Moontoast\Math\BigNumber is required. '
@@ -0,0 +1,10 @@
<?php
namespace Rhumsaa\Uuid\Converter;
interface NumberConverterInterface
{
public function fromHex($hex);
public function toHex($integer);
}
@@ -1,10 +1,10 @@
<?php
namespace Rhumsaa\Uuid\Time;
namespace Rhumsaa\Uuid\Converter\Time;
use Rhumsaa\Uuid\TimeConverter;
use Rhumsaa\Uuid\Converter\TimeConverterInterface;
class BigNumberTimeConverter implements TimeConverter
class BigNumberTimeConverter implements TimeConverterInterface
{
public function calculateTime($seconds, $microSeconds)
{
@@ -1,11 +1,11 @@
<?php
namespace Rhumsaa\Uuid\Time;
namespace Rhumsaa\Uuid\Converter\Time;
use Rhumsaa\Uuid\TimeConverter;
use Rhumsaa\Uuid\Converter\TimeConverterInterface;
use Rhumsaa\Uuid\Exception\UnsatisfiedDependencyException;
class DegradedTimeConverter implements TimeConverter
class DegradedTimeConverter implements TimeConverterInterface
{
public function calculateTime($seconds, $microSeconds)
{
@@ -1,10 +1,10 @@
<?php
namespace Rhumsaa\Uuid\Time;
namespace Rhumsaa\Uuid\Converter\Time;
use Rhumsaa\Uuid\TimeConverter;
use Rhumsaa\Uuid\Converter\TimeConverterInterface;
class PhpTimeConverter implements TimeConverter
class PhpTimeConverter implements TimeConverterInterface
{
public function calculateTime($seconds, $microSeconds)
{
@@ -1,8 +1,8 @@
<?php
namespace Rhumsaa\Uuid;
namespace Rhumsaa\Uuid\Converter;
interface TimeConverter
interface TimeConverterInterface
{
/**
+3 -1
View File
@@ -2,10 +2,12 @@
namespace Rhumsaa\Uuid;
use Rhumsaa\Uuid\Converter\NumberConverterInterface;
class DegradedUuid extends Uuid
{
public function __construct(array $fields, BigNumberConverter $converter, Codec $codec)
public function __construct(array $fields, NumberConverterInterface $converter, Codec $codec)
{
parent::__construct($fields, $converter, $codec);
}
+5 -3
View File
@@ -5,9 +5,11 @@ namespace Rhumsaa\Uuid;
use Rhumsaa\Uuid\Node\FallbackNodeProvider;
use Rhumsaa\Uuid\Node\RandomNodeProvider;
use Rhumsaa\Uuid\Node\SystemNodeProvider;
use Rhumsaa\Uuid\Time\BigNumberTimeConverter;
use Rhumsaa\Uuid\Time\DegradedTimeConverter;
use Rhumsaa\Uuid\Time\PhpTimeConverter;
use Rhumsaa\Uuid\Converter\Number\BigNumberConverter;
use Rhumsaa\Uuid\Converter\Number\DegradedNumberConverter;
use Rhumsaa\Uuid\Converter\Time\BigNumberTimeConverter;
use Rhumsaa\Uuid\Converter\Time\DegradedTimeConverter;
use Rhumsaa\Uuid\Converter\Time\PhpTimeConverter;
use Rhumsaa\Uuid\Time\SystemTimeProvider;
use Rhumsaa\Uuid\Builder\DefaultUuidBuilder;
use Rhumsaa\Uuid\Codec\StringCodec;
+3 -2
View File
@@ -12,6 +12,7 @@
namespace Rhumsaa\Uuid;
use InvalidArgumentException;
use Rhumsaa\Uuid\Converter\NumberConverterInterface;
/**
* Represents a universally unique identifier (UUID), according to RFC 4122
@@ -137,7 +138,7 @@ class Uuid implements UuidInterface, \JsonSerializable
* @param Codec $codec String codec
* @link Rhumsaa.Uuid.Uuid.html#method_getFields
*/
public function __construct(array $fields, BigNumberConverter $converter, Codec $codec)
public function __construct(array $fields, NumberConverterInterface $converter, Codec $codec)
{
$this->fields = $fields;
$this->codec = $codec;
@@ -303,7 +304,7 @@ class Uuid implements UuidInterface, \JsonSerializable
return sprintf('%04x', $this->getClockSequence());
}
public function getConverter()
public function getNumberConverter()
{
return $this->converter;
}
+8 -4
View File
@@ -2,6 +2,10 @@
namespace Rhumsaa\Uuid;
use InvalidArgumentException;
use Rhumsaa\Uuid\Converter\NumberConverterInterface;
use Rhumsaa\Uuid\Converter\TimeConverterInterface;
class UuidFactory
{
@@ -19,7 +23,7 @@ class UuidFactory
/**
*
* @var BigNumberConverter
* @var NumberConverterInterface
*/
private $numberConverter = null;
@@ -30,7 +34,7 @@ class UuidFactory
/**
*
* @var TimeConverter
* @var TimeConverterInterface
*/
private $timeConverter = null;
@@ -68,7 +72,7 @@ class UuidFactory
return $this->codec;
}
public function setTimeConverter(TimeConverter $converter)
public function setTimeConverter(TimeConverterInterface $converter)
{
$this->timeConverter = $converter;
}
@@ -88,7 +92,7 @@ class UuidFactory
$this->nodeProvider = $provider;
}
public function setNumberConverter(BigNumberConverter $converter)
public function setNumberConverter(NumberConverterInterface $converter)
{
$this->numberConverter = $converter;
}
+4 -2
View File
@@ -2,6 +2,8 @@
namespace Rhumsaa\Uuid;
use Rhumsaa\Uuid\Converter\NumberConverterInterface;
interface UuidInterface
{
@@ -16,9 +18,9 @@ interface UuidInterface
public function equals($other);
/**
* @return BigNumberConverter
* @return NumberConverterInterface
*/
public function getConverter();
public function getNumberConverter();
/**
* @return string
@@ -1,6 +1,8 @@
<?php
namespace Rhumsaa\Uuid;
namespace Rhumsaa\Uuid\Converter\Number;
use Rhumsaa\Uuid\TestCase;
class DegradedNumberConverterTest extends TestCase
{
+2 -2
View File
@@ -187,7 +187,7 @@ class UuidTest extends TestCase
$uuid = Uuid::fromString('ff6f8cb0-c57d-11e1-9b21-0800200c9a66');
$this->assertInstanceOf('Rhumsaa\Uuid\DegradedUuid', $uuid);
$this->assertInstanceOf('Rhumsaa\Uuid\DegradedNumberConverter', $uuid->getConverter());
$this->assertInstanceOf('Rhumsaa\Uuid\Converter\Number\DegradedNumberConverter', $uuid->getNumberConverter());
$date = $uuid->getDateTime();
}
@@ -1687,7 +1687,7 @@ class UuidTest extends TestCase
/**
* @expectedException Rhumsaa\Uuid\Exception\UnsatisfiedDependencyException
* @expectedExceptionMessage Cannot call Rhumsaa\Uuid\DegradedNumberConverter::fromHex without support for large integers
* @expectedExceptionMessage Cannot call Rhumsaa\Uuid\Converter\Number\DegradedNumberConverter::fromHex without support for large integers
*/
public function testGetInteger()
{