1 <?php
2 3 4
5 namespace Team3\PayU\Order\Model\Products;
6
7 use Symfony\Component\Validator\Constraints as Assert;
8
9 class ProductCollection implements ProductCollectionInterface
10 {
11 12 13 14
15 protected $products;
16
17 18 19
20 public function __construct(array $products = [])
21 {
22 $this->products = $products;
23 }
24
25 26 27 28 29
30 public function isFilled()
31 {
32 return 0 < count($this->products);
33 }
34
35 36 37 38 39
40 public function addProduct(ProductInterface $product)
41 {
42 $this->products[] = $product;
43
44 return $this;
45 }
46
47 48 49
50 public function getProducts()
51 {
52 return $this->products;
53 }
54
55 56 57 58 59
60 public function setProducts(array $products)
61 {
62 $this->products = array_values($products);
63
64 return $this;
65 }
66
67 68 69
70 public function count()
71 {
72 return count($this->getProducts());
73 }
74
75 76 77
78 public function getIterator()
79 {
80 return new \ArrayIterator($this->getProducts());
81 }
82 }
83