Completed
Pull Request — master (#129)
by Eric
257:01 queued 192:06
created

src/Event/MultiRequestSentEvent.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
/*
4
 * This file is part of the Ivory Http Adapter package.
5
 *
6
 * (c) Eric GELOEN <[email protected]>
7
 *
8
 * For the full copyright and license information, please read the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Ivory\HttpAdapter\Event;
13
14
use Ivory\HttpAdapter\HttpAdapterException;
15
use Ivory\HttpAdapter\HttpAdapterInterface;
16
use Ivory\HttpAdapter\Message\ResponseInterface;
17
18
/**
19
 * Multi request sent event.
20
 *
21
 * @author GeLo <[email protected]>
22
 */
23 View Code Duplication
class MultiRequestSentEvent extends AbstractEvent
0 ignored issues
show
This class seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
24
{
25
    /** @var \Ivory\HttpAdapter\Message\ResponseInterface[] */
26
    private $responses;
27
28
    /** @var \Ivory\HttpAdapter\HttpAdapterException[] */
29
    private $exceptions = array();
30
31
    /**
32
     * Creates a multi request sent event.
33
     *
34
     * @param \Ivory\HttpAdapter\HttpAdapterInterface        $httpAdapter The http adapter.
35
     * @param \Ivory\HttpAdapter\Message\ResponseInterface[] $responses   The responses.
36
     */
37 513
    public function __construct(HttpAdapterInterface $httpAdapter, array $responses)
38
    {
39 513
        parent::__construct($httpAdapter);
40
41 513
        $this->setResponses($responses);
42 513
    }
43
44
    /**
45
     * Clears the responses.
46
     */
47 513
    public function clearResponses()
48
    {
49 513
        $this->responses = array();
50 513
    }
51
52
    /**
53
     * Checks if there are responses.
54
     *
55
     * @return boolean TRUE if there are responses else FALSE.
56
     */
57 190
    public function hasResponses()
58
    {
59 190
        return !empty($this->responses);
60
    }
61
62
    /**
63
     * Gets the responses.
64
     *
65
     * @return \Ivory\HttpAdapter\Message\ResponseInterface[] The responses.
66
     */
67 361
    public function getResponses()
68
    {
69 361
        return $this->responses;
70
    }
71
72
    /**
73
     * Sets the responses.
74
     *
75
     * @param \Ivory\HttpAdapter\Message\ResponseInterface[] $responses The responses.
76
     */
77 513
    public function setResponses(array $responses)
78
    {
79 513
        $this->clearResponses();
80 513
        $this->addResponses($responses);
81 513
    }
82
83
    /**
84
     * Adds the responses.
85
     *
86
     * @param \Ivory\HttpAdapter\Message\ResponseInterface[] $responses The responses.
87
     */
88 513
    public function addResponses(array $responses)
89
    {
90 513
        foreach ($responses as $response) {
91 513
            $this->addResponse($response);
92 486
        }
93 513
    }
94
95
    /**
96
     * Removes the responses.
97
     *
98
     * @param \Ivory\HttpAdapter\Message\ResponseInterface[] $responses The responses.
99
     */
100 19
    public function removeResponses(array $responses)
101
    {
102 19
        foreach ($responses as $response) {
103 19
            $this->removeResponse($response);
104 18
        }
105 19
    }
106
107
    /**
108
     * Checks if there is a response.
109
     *
110
     * @param \Ivory\HttpAdapter\Message\ResponseInterface $response The response.
111
     *
112
     * @return boolean TRUE if there is the response else FALSE.
113
     */
114 95
    public function hasResponse(ResponseInterface $response)
115
    {
116 95
        return array_search($response, $this->responses, true) !== false;
117
    }
118
119
    /**
120
     * Adds a response.
121
     *
122
     * @param \Ivory\HttpAdapter\Message\ResponseInterface $response The response.
123
     */
124 513
    public function addResponse(ResponseInterface $response)
125
    {
126 513
        $this->responses[] = $response;
127 513
    }
128
129
    /**
130
     * Removes a response.
131
     *
132
     * @param \Ivory\HttpAdapter\Message\ResponseInterface $response The response.
133
     */
134 171
    public function removeResponse(ResponseInterface $response)
135
    {
136 171
        unset($this->responses[array_search($response, $this->responses, true)]);
137 171
        $this->responses = array_values($this->responses);
138 171
    }
139
140
    /**
141
     * Clears the exceptions.
142
     */
143 95
    public function clearExceptions()
144
    {
145 95
        $this->exceptions = array();
146 95
    }
147
148
    /**
149
     * Checks if there are exceptions.
150
     *
151
     * @return boolean TRUE if there are exceptions else FALSE.
152
     */
153 209
    public function hasExceptions()
154
    {
155 209
        return !empty($this->exceptions);
156
    }
157
158
    /**
159
     * Gets the exceptions.
160
     *
161
     * @return \Ivory\HttpAdapter\HttpAdapterException[] The exceptions.
162
     */
163 209
    public function getExceptions()
164
    {
165 209
        return $this->exceptions;
166
    }
167
168
    /**
169
     * Sets the exceptions.
170
     *
171
     * @param \Ivory\HttpAdapter\HttpAdapterException[] $exceptions The exceptions.
172
     */
173 95
    public function setExceptions(array $exceptions)
174
    {
175 95
        $this->clearExceptions();
176 95
        $this->addExceptions($exceptions);
177 95
    }
178
179
    /**
180
     * Adds the exceptions.
181
     *
182
     * @param \Ivory\HttpAdapter\HttpAdapterException[] $exceptions The exceptions.
183
     */
184 114
    public function addExceptions(array $exceptions)
185
    {
186 114
        foreach ($exceptions as $exception) {
187 114
            $this->addException($exception);
188 108
        }
189 114
    }
190
191
    /**
192
     * Removes the exceptions.
193
     *
194
     * @param \Ivory\HttpAdapter\HttpAdapterException[] $exceptions The exceptions.
195
     */
196 19
    public function removeExceptions(array $exceptions)
197
    {
198 19
        foreach ($exceptions as $exception) {
199 19
            $this->removeException($exception);
200 18
        }
201 19
    }
202
203
    /**
204
     * Checks if there is an exception.
205
     *
206
     * @param \Ivory\HttpAdapter\HttpAdapterException $exception The exception.
207
     *
208
     * @return boolean TRUE if there is the exception else FALSE.
209
     */
210 76
    public function hasException(HttpAdapterException $exception)
211
    {
212 76
        return array_search($exception, $this->exceptions, true) !== false;
213
    }
214
215
    /**
216
     * Adds an exception.
217
     *
218
     * @param \Ivory\HttpAdapter\HttpAdapterException $exception The exception
219
     */
220 190
    public function addException(HttpAdapterException $exception)
221
    {
222 190
        $this->exceptions[] = $exception;
223 190
    }
224
225
    /**
226
     * Removes an exception.
227
     *
228
     * @param \Ivory\HttpAdapter\HttpAdapterException $exception The exception.
229
     */
230 38
    public function removeException(HttpAdapterException $exception)
231
    {
232 38
        unset($this->exceptions[array_search($exception, $this->exceptions, true)]);
233 38
        $this->exceptions = array_values($this->exceptions);
234 38
    }
235
}
236