1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
<?php
namespace AmpProject\Optimizer;
use ArrayIterator; use Countable; use IteratorAggregate;
/** * Collection of error objects to pass around the transformation engine. * * @package ampproject/optimizer */ final class ErrorCollection implements Countable, IteratorAggregate {
/** * Internal storage for the errors that were added. * * @var Error[] */ private $errors = [];
/** * Add an error to the error collection. * * @param Error $error Error to add. * @return void */ public function add(Error $error) { $this->errors[] = $error; }
/** * Check whether the error collection contains an error for the given code. * * @param string $code Code of the error. * @return bool Whether the error collection contains an error with the given code. */ public function has($code) { foreach ($this->errors as $error) { if ($error->getCode() === $code) { return true; } }
return false; }
/** * Get the iterator for iterating over the collection. * * @return ArrayIterator Iterator for the contained errors. */ public function getIterator() { return new ArrayIterator($this->errors); }
/** * Count how many errors are contained within the error collection. * * @return int Number of contained errors. */ public function count() { return count($this->errors); } }
|