mirror of
https://github.com/ramsey/uuid.git
synced 2026-06-19 16:47:23 +03:00
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:
@@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user