Security update for permissions_by_term
[yaffs-website] / vendor / behat / behat / src / Behat / Behat / Context / Argument / CompositeFactory.php
1 <?php
2
3 /*
4  * This file is part of the Behat.
5  * (c) Konstantin Kudryashov <ever.zet@gmail.com>
6  *
7  * For the full copyright and license information, please view the LICENSE
8  * file that was distributed with this source code.
9  */
10
11 namespace Behat\Behat\Context\Argument;
12
13 use Behat\Testwork\Suite\Suite;
14
15 /**
16  * Composite factory. Delegates to other (registered) factories to do the job.
17  *
18  * @see ContextEnvironmentHandler
19  *
20  * @author Konstantin Kudryashov <ever.zet@gmail.com>
21  *
22  * @deprecated and will be removed in 4.0. Use CompositeArgumentResolverFactory instead
23  */
24 final class CompositeFactory implements SuiteScopedResolverFactory
25 {
26     /**
27      * @var SuiteScopedResolverFactory[]
28      */
29     private $factories = array();
30
31     /**
32      * Registers factory.
33      *
34      * @param SuiteScopedResolverFactory $factory
35      */
36     public function registerFactory(SuiteScopedResolverFactory $factory)
37     {
38         $this->factories[] = $factory;
39     }
40
41     /**
42      * {@inheritdoc}
43      */
44     public function generateArgumentResolvers(Suite $suite)
45     {
46         return array_reduce(
47             $this->factories,
48             function (array $resolvers, SuiteScopedResolverFactory $factory) use ($suite) {
49                 return array_merge($resolvers, $factory->generateArgumentResolvers($suite));
50             },
51             array()
52         );
53     }
54 }