1<?php
2
3namespace Elastica\ResultSet;
4
5use Elastica\ResultSet;
6
7/**
8 * Allows multiple ProcessorInterface instances to operate on the same
9 * ResultSet, calling each in turn.
10 */
11class ChainProcessor implements ProcessorInterface
12{
13    /**
14     * @var ProcessorInterface[]
15     */
16    private $processors;
17
18    /**
19     * @param ProcessorInterface[] $processors
20     */
21    public function __construct(array $processors)
22    {
23        $this->processors = $processors;
24    }
25
26    /**
27     * {@inheritdoc}
28     */
29    public function process(ResultSet $resultSet): void
30    {
31        foreach ($this->processors as $processor) {
32            $processor->process($resultSet);
33        }
34    }
35}
36