1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
/**
* Refer to LICENSE.txt distributed with the Temando Shipping module for notice of license
*/
namespace Temando\Shipping\Sync;
use Temando\Shipping\Model\StreamEventInterface;
use Temando\Shipping\Sync\Exception\EventException;
/**
* Temando Event Processor Factory
*
* @package Temando\Shipping\Sync
* @author Benjamin Heuer <benjamin.heuer@netresearch.de>
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* @link http://www.temando.com/
*/
class EntityProcessorFactory
{
/**
* @var ShipmentProcessor
*/
private $shipmentProcessor;
/**
* EntityEventProcessorFactory constructor.
* @param ShipmentProcessor $shipmentProcessor
*/
public function __construct(ShipmentProcessor $shipmentProcessor)
{
$this->shipmentProcessor = $shipmentProcessor;
}
/**
* @param string $entityType
* @return EntityProcessorInterface
* @throws EventException
*/
public function get($entityType)
{
switch ($entityType) {
case StreamEventInterface::ENTITY_TYPE_SHIPMENT:
return $this->shipmentProcessor;
default:
throw EventException::unknownEntityType($entityType);
}
}
}