Code Duplication    Length = 46-46 lines in 2 locations

src/Command/Handler/Locator/SymfonyContainerCommandHandlerLocator.php 1 location

@@ 20-65 (lines=46) @@
17
use Symfony\Component\DependencyInjection\ContainerAwareTrait;
18
use Symfony\Component\DependencyInjection\ContainerInterface;
19
20
class SymfonyContainerCommandHandlerLocator implements CommandHandlerLocator, ContainerAwareInterface
21
{
22
    use ContainerAwareTrait;
23
24
    /**
25
     * @var string[]
26
     */
27
    private $command_handler_ids = [];
28
29
    /**
30
     * @param Command $command
31
     *
32
     * @return CommandHandler|null
33
     */
34
    public function getCommandHandler(Command $command)
35
    {
36
        return $this->lazyLoad(get_class($command));
37
    }
38
39
    /**
40
     * @param string $command_name
41
     * @param string $service
42
     */
43
    public function registerService($command_name, $service)
44
    {
45
        $this->command_handler_ids[$command_name] = $service;
46
    }
47
48
    /**
49
     * @param $command_name
50
     *
51
     * @return CommandHandler
52
     */
53
    private function lazyLoad($command_name)
54
    {
55
        if ($this->container instanceof ContainerInterface && isset($this->command_handler_ids[$command_name])) {
56
            $handler = $this->container->get($this->command_handler_ids[$command_name]);
57
58
            if ($handler instanceof CommandHandler) {
59
                return $handler;
60
            }
61
        }
62
63
        return null;
64
    }
65
}
66

src/Query/Handler/Locator/SymfonyContainerQueryHandlerLocator.php 1 location

@@ 19-64 (lines=46) @@
16
use Symfony\Component\DependencyInjection\ContainerAwareTrait;
17
use Symfony\Component\DependencyInjection\ContainerInterface;
18
19
class SymfonyContainerQueryHandlerLocator implements QueryHandlerLocator, ContainerAwareInterface
20
{
21
    use ContainerAwareTrait;
22
23
    /**
24
     * @var string[]
25
     */
26
    private $query_handler_ids = [];
27
28
    /**
29
     * @param Query $query
30
     *
31
     * @return QueryHandler|null
32
     */
33
    public function getQueryHandler(Query $query)
34
    {
35
        return $this->lazyLoad(get_class($query));
36
    }
37
38
    /**
39
     * @param string $query_name
40
     * @param string $service
41
     */
42
    public function registerService($query_name, $service)
43
    {
44
        $this->query_handler_ids[$query_name] = $service;
45
    }
46
47
    /**
48
     * @param $query_name
49
     *
50
     * @return QueryHandler
51
     */
52
    private function lazyLoad($query_name)
53
    {
54
        if ($this->container instanceof ContainerInterface && isset($this->query_handler_ids[$query_name])) {
55
            $handler = $this->container->get($this->query_handler_ids[$query_name]);
56
57
            if ($handler instanceof QueryHandler) {
58
                return $handler;
59
            }
60
        }
61
62
        return null;
63
    }
64
}
65