Enable use of custom TimeGenerator implementations

- Removes now unnecessary `timeConverter` and `timeProvider`
  properties, setters, and getters in both FeatureSet and
  UuidFactory as those are now exclusively used by the default
  TimeGenerator
- Adds a `setTimeGenerator` method on UuidFactory to override the
  default time generator
This commit is contained in:
Aztech
2015-07-28 22:15:45 +02:00
parent b5e431e7f1
commit 0cd74639cf
3 changed files with 44 additions and 55 deletions
+26 -9
View File
@@ -14,26 +14,43 @@
namespace Ramsey\Uuid\Generator;
use Ramsey\Uuid\FeatureSet;
use Ramsey\Uuid\Converter\TimeConverterInterface;
use Ramsey\Uuid\Provider\NodeProviderInterface;
use Ramsey\Uuid\Provider\TimeProviderInterface;
class TimeGeneratorFactory
{
/**
* @var FeatureSet
* @var NodeProviderInterface
*/
private $featureSet;
private $nodeProvider;
public function __construct(FeatureSet $featureSet)
{
$this->featureSet = $featureSet;
/**
* @var TimeConverterInterface
*/
private $timeConverter;
/**
* @var TimeProviderInterface
*/
private $timeProvider;
public function __construct(
NodeProviderInterface $nodeProvider,
TimeConverterInterface $timeConverter,
TimeProviderInterface $timeProvider
) {
$this->nodeProvider = $nodeProvider;
$this->timeConverter = $timeConverter;
$this->timeProvider = $timeProvider;
}
public function getGenerator()
{
return new DefaultTimeGenerator(
$this->featureSet->getNodeProvider(),
$this->featureSet->getTimeConverter(),
$this->featureSet->getTimeProvider()
$this->nodeProvider,
$this->timeConverter,
$this->timeProvider
);
}
}