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