@@ -28,59 +28,54 @@ class Aggregation implements IteratorAggregate, HttpTransportable
2828{
2929 /**
3030 * @var string
31- *
32- * Name
3331 */
3432 private $ name ;
3533
3634 /**
3735 * @var Counter[]
38- *
39- * Counters
4036 */
4137 private $ counters = [];
4238
4339 /**
4440 * @var int
45- *
46- * Application type
4741 */
4842 private $ applicationType ;
4943
5044 /**
5145 * @var int
52- *
53- * Total elements
5446 */
5547 private $ totalElements ;
5648
5749 /**
5850 * @var array
59- *
60- * Active elements
6151 */
6252 private $ activeElements ;
6353
6454 /**
6555 * @var int
66- *
67- * Highest active level
6856 */
6957 private $ highestActiveLevel = 0 ;
7058
59+ /**
60+ * @var array
61+ */
62+ private $ metadata ;
63+
7164 /**
7265 * Aggregation constructor.
7366 *
7467 * @param string $name
7568 * @param int $applicationType
7669 * @param int $totalElements
7770 * @param array $activeElements
71+ * @param array $metadata
7872 */
7973 public function __construct (
8074 string $ name ,
8175 int $ applicationType ,
8276 int $ totalElements ,
83- array $ activeElements
77+ array $ activeElements ,
78+ array $ metadata = []
8479 ) {
8580 $ this ->name = $ name ;
8681 $ this ->applicationType = $ applicationType ;
@@ -89,6 +84,7 @@ public function __construct(
8984 array_values ($ activeElements ),
9085 array_values ($ activeElements )
9186 );
87+ $ this ->metadata = $ metadata ;
9288 }
9389
9490 /**
@@ -189,6 +185,14 @@ public function getCounter(string $name): ? Counter
189185 return $ this ->counters [$ name ] ?? null ;
190186 }
191187
188+ /**
189+ * @return array
190+ */
191+ public function getMetadata (): array
192+ {
193+ return $ this ->metadata ;
194+ }
195+
192196 /**
193197 * Get all elements.
194198 *
@@ -310,6 +314,7 @@ public function toArray(): array
310314 'highest_active_level ' => 0 === $ this ->highestActiveLevel
311315 ? null
312316 : $ this ->highestActiveLevel ,
317+ 'metadata ' => $ this ->metadata
313318 ], function ($ element ) {
314319 return
315320 !(
@@ -350,6 +355,7 @@ public static function createFromArray(array $array): self
350355 }
351356
352357 $ aggregation ->highestActiveLevel = $ array ['highest_active_level ' ] ?? 0 ;
358+ $ aggregation ->metadata = $ array ['metadata ' ] ?? [];
353359
354360 return $ aggregation ;
355361 }
0 commit comments