Completed
Push — master ( 4aabf3...eb9b51 )
by Hiraku
02:13
created

JoinPoint::setResponse()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
ccs 3
cts 3
cp 1
rs 10
cc 1
eloc 2
nc 1
nop 1
crap 1
1
<?php
2
/*
3
 * hirak/prestissimo
4
 * @author Hiraku NAKANO
5
 * @license MIT https://github.com/hirak/prestissimo
6
 */
7
namespace Hirak\Prestissimo\Aspects;
8
9
use SplSubject;
10
use SplObserver;
11
use SplObjectStorage;
12
13
/**
14
 * Simple EventDispatcher for extending downloader
15
 */
16
class JoinPoint implements SplSubject
17
{
18
    /** @var SplObjectStorage */
19
    protected $storage;
20
21
    /** @var HttpGetRequest */
22
    protected $request;
23
24
    /** @var HttpGetResponse */
25
    protected $response;
26
27
    /** @var string */
28
    protected $name;
29
30
    /**
31
     * @param string $pointName
32
     */
33 4
    public function __construct($pointName, HttpGetRequest $request)
34
    {
35 4
        $this->name = $pointName;
36 4
        $this->detachAll();
37 4
        $this->request = $request;
38 4
    }
39
40 3
    public function attach(SplObserver $observer)
41
    {
42 3
        $this->storage->attach($observer);
43 3
    }
44
45 1
    public function attachArray(array $observers)
46
    {
47 1
        $storage = $this->storage;
48 1
        foreach ($observers as $observer) {
49 1
            $storage->attach($observer);
50 1
        }
51 1
    }
52
53 1
    public function detach(SplObserver $observer)
54
    {
55 1
        $this->storage->detach($observer);
56 1
    }
57
58 4
    public function detachAll()
59
    {
60 4
        $this->storage = new SplObjectStorage;
61 4
    }
62
63 1
    public function notify()
64
    {
65 1
        foreach ($this->storage as $observer) {
66 1
            $observer->update($this);
67 1
        }
68 1
    }
69
70 1
    final public function refRequest()
71
    {
72 1
        return $this->request;
73
    }
74
75 1
    public function setRequest(HttpGetRequest $req)
76
    {
77 1
        $this->request = $req;
78 1
    }
79
80 1
    final public function refResponse()
81
    {
82 1
        return $this->response;
83
    }
84
85 1
    public function setResponse(HttpGetResponse $res)
86
    {
87 1
        $this->response = $res;
88 1
    }
89
90 2
    public function __toString()
91
    {
92 2
        return $this->name;
93
    }
94
}
95