Completed
Branch master (e1d486)
by Pieter
02:44
created

StoreNewResourceEvent   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 12
c 1
b 0
f 1
dl 0
loc 56
rs 10
wmc 6

5 Methods

Rating   Name   Duplication   Size   Complexity  
A getRequest() 0 3 1
A getResource() 0 3 1
A __construct() 0 4 1
A setResource() 0 6 2
A setRequest() 0 3 1
1
<?php
2
3
4
namespace W2w\Lib\Apie\Events;
5
6
7
use Psr\Http\Message\RequestInterface;
8
use W2w\Lib\Apie\Exceptions\InvalidReturnTypeOfApiResourceException;
9
10
/**
11
 * Event mediator for adding a new resource to a data layer,
12
 */
13
class StoreNewResourceEvent
14
{
15
    /**
16
     * @var string
17
     */
18
    private $resourceClass;
19
20
    /**
21
     * @var RequestInterface
22
     */
23
    private $request;
24
25
    /**
26
     * @var object|null
27
     */
28
    private $resource;
29
30
    public function __construct(string $resourceClass, RequestInterface $request)
31
    {
32
        $this->resourceClass = $resourceClass;
33
        $this->request = $request;
34
    }
35
36
    /**
37
     * @param RequestInterface $request
38
     */
39
    public function setRequest(RequestInterface $request): void
40
    {
41
        $this->request = $request;
42
    }
43
44
    /**
45
     * @return RequestInterface
46
     */
47
    public function getRequest(): RequestInterface
48
    {
49
        return $this->request;
50
    }
51
52
    /**
53
     * @return object|null
54
     */
55
    public function getResource(): ?object
56
    {
57
        return $this->resource;
58
    }
59
60
    /**
61
     * @param object|null $resource
62
     */
63
    public function setResource(?object $resource): void
64
    {
65
        if (!$resource instanceof $this->resourceClass) {
66
            throw new InvalidReturnTypeOfApiResourceException(null, get_class($resource), $this->resourceClass);
67
        }
68
        $this->resource = $resource;
69
    }
70
}
71