Open Journal Systems  3.3.0
CompositeResourceIteratorFactory.php
1 <?php
2 
4 
7 
12 {
14  protected $factories;
15 
17  public function __construct(array $factories)
18  {
19  $this->factories = $factories;
20  }
21 
22  public function build(CommandInterface $command, array $options = array())
23  {
24  if (!($factory = $this->getFactory($command))) {
25  throw new InvalidArgumentException('Iterator was not found for ' . $command->getName());
26  }
27 
28  return $factory->build($command, $options);
29  }
30 
31  public function canBuild(CommandInterface $command)
32  {
33  return $this->getFactory($command) !== false;
34  }
35 
43  public function addFactory(ResourceIteratorFactoryInterface $factory)
44  {
45  $this->factories[] = $factory;
46 
47  return $this;
48  }
49 
57  protected function getFactory(CommandInterface $command)
58  {
59  foreach ($this->factories as $factory) {
60  if ($factory->canBuild($command)) {
61  return $factory;
62  }
63  }
64 
65  return false;
66  }
67 }
Guzzle\Service\Resource\CompositeResourceIteratorFactory\__construct
__construct(array $factories)
Definition: CompositeResourceIteratorFactory.php:20
Guzzle\Service\Resource\CompositeResourceIteratorFactory\$factories
$factories
Definition: CompositeResourceIteratorFactory.php:17
Guzzle\Service\Command\CommandInterface
Definition: CommandInterface.php:17
Guzzle\Common\Exception\InvalidArgumentException
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Common/Exception/InvalidArgumentException.php:5
Guzzle\Service\Command\CommandInterface\getName
getName()
Guzzle\Service\Resource\CompositeResourceIteratorFactory\canBuild
canBuild(CommandInterface $command)
Definition: CompositeResourceIteratorFactory.php:34
Guzzle\Service\Resource\CompositeResourceIteratorFactory\getFactory
getFactory(CommandInterface $command)
Definition: CompositeResourceIteratorFactory.php:60
Guzzle\Service\Resource\CompositeResourceIteratorFactory\addFactory
addFactory(ResourceIteratorFactoryInterface $factory)
Definition: CompositeResourceIteratorFactory.php:46
Guzzle\Service\Resource\CompositeResourceIteratorFactory
Definition: CompositeResourceIteratorFactory.php:11
Guzzle\Service\Resource
Definition: AbstractResourceIteratorFactory.php:3
Guzzle\Service\Resource\ResourceIteratorFactoryInterface
Definition: ResourceIteratorFactoryInterface.php:10
Guzzle\Service\Resource\CompositeResourceIteratorFactory\build
build(CommandInterface $command, array $options=array())
Definition: CompositeResourceIteratorFactory.php:25