Total Complexity | 5 |
Total Lines | 41 |
Duplicated Lines | 0 % |
Coverage | 100% |
Changes | 0 |
1 | <?php |
||
13 | class ContainerMethodResolver implements MethodResolverInterface |
||
14 | { |
||
15 | /** @var ContainerInterface */ |
||
16 | private $container; |
||
17 | /** @var ServiceNameResolverInterface|null */ |
||
18 | private $serviceNameResolver = null; |
||
19 | |||
20 | /** |
||
21 | * @param ContainerInterface $container |
||
22 | */ |
||
23 | 4 | public function __construct(ContainerInterface $container) |
|
24 | { |
||
25 | 4 | $this->container = $container; |
|
26 | 4 | } |
|
27 | |||
28 | /** |
||
29 | * {@inheritdoc} |
||
30 | */ |
||
31 | 4 | public function resolve(string $methodName) : JsonRpcMethodInterface |
|
32 | { |
||
33 | 4 | $serviceName = null !== $this->serviceNameResolver |
|
34 | 2 | ? $this->serviceNameResolver->resolve($methodName) |
|
35 | 4 | : $methodName |
|
36 | ; |
||
37 | 4 | if (!$this->container->has($serviceName)) { |
|
38 | 2 | throw new JsonRpcMethodNotFoundException($methodName); |
|
39 | } |
||
40 | |||
41 | 2 | return $this->container->get($serviceName); |
|
42 | } |
||
43 | |||
44 | /** |
||
45 | * @param ServiceNameResolverInterface $serviceNameResolver |
||
46 | * |
||
47 | * @return ContainerMethodResolver |
||
48 | */ |
||
49 | 2 | public function setServiceNameResolver(ServiceNameResolverInterface $serviceNameResolver) : ContainerMethodResolver |
|
54 | } |
||
55 | } |
||
56 |