Code Duplication    Length = 44-44 lines in 2 locations

src/Adapter/CsvExportAdapterFactory.php 1 location

@@ 36-79 (lines=44) @@
33
 * @link      https://github.com/techdivision/import
34
 * @link      http://www.techdivision.com
35
 */
36
class CsvExportAdapterFactory implements ExportAdapterFactoryInterface
37
{
38
39
    /**
40
     * The DI container instance.
41
     *
42
     * @var \Symfony\Component\DependencyInjection\ContainerInterface
43
     */
44
    protected $container;
45
46
    /**
47
     * Initialize the factory with the DI container instance.
48
     *
49
     * @param \Symfony\Component\DependencyInjection\ContainerInterface $container The DI container instance
50
     */
51
    public function __construct(ContainerInterface $container)
52
    {
53
        $this->container = $container;
54
    }
55
56
    /**
57
     * Creates and returns the export adapter for the subject with the passed configuration.
58
     *
59
     * @param \TechDivision\Import\Configuration\ExportAdapterAwareConfigurationInterface $configuration The subject configuration
60
     *
61
     * @return \TechDivision\Import\Adapter\ExportAdapterInterface The export adapter instance
62
     */
63
    public function createExportAdapter(ExportAdapterAwareConfigurationInterface $configuration)
64
    {
65
66
        // load the export adapter configuration
67
        $exportAdapterConfiguration = $configuration->getExportAdapter();
68
69
        // load the serializer factory instance
70
        $serializerFactory = $this->container->get($exportAdapterConfiguration->getSerializer()->getId());
71
72
        // create the instance and pass the export adapter configuration instance
73
        $exportAdapter = $this->container->get(DependencyInjectionKeys::IMPORT_ADAPTER_EXPORT_CSV);
74
        $exportAdapter->init($exportAdapterConfiguration, $serializerFactory);
75
76
        // return the initialized export adapter instance
77
        return $exportAdapter;
78
    }
79
}
80

src/Adapter/CsvImportAdapterFactory.php 1 location

@@ 36-79 (lines=44) @@
33
 * @link      https://github.com/techdivision/import
34
 * @link      http://www.techdivision.com
35
 */
36
class CsvImportAdapterFactory implements ImportAdapterFactoryInterface
37
{
38
39
    /**
40
     * The DI container instance.
41
     *
42
     * @var \Symfony\Component\DependencyInjection\ContainerInterface
43
     */
44
    protected $container;
45
46
    /**
47
     * Initialize the factory with the DI container instance.
48
     *
49
     * @param \Symfony\Component\DependencyInjection\ContainerInterface $container The DI container instance
50
     */
51
    public function __construct(ContainerInterface $container)
52
    {
53
        $this->container = $container;
54
    }
55
56
    /**
57
     * Creates and returns the import adapter for the subject with the passed configuration.
58
     *
59
     * @param \TechDivision\Import\Configuration\ImportAdapterAwareConfigurationInterface $configuration The subject configuration
60
     *
61
     * @return \TechDivision\Import\Adapter\ExportAdapterInterface The import adapter instance
62
     */
63
    public function createImportAdapter(ImportAdapterAwareConfigurationInterface $configuration)
64
    {
65
66
        // load the import adapter configuration
67
        $importAdapterConfiguration = $configuration->getImportAdapter();
68
69
        // load the serializer factory instance
70
        $serializerFactory = $this->container->get($importAdapterConfiguration->getSerializer()->getId());
71
72
        // create the instance and pass the import adapter configuration instance
73
        $importAdapter = $this->container->get(DependencyInjectionKeys::IMPORT_ADAPTER_IMPORT_CSV);
74
        $importAdapter->init($importAdapterConfiguration, $serializerFactory);
75
76
        // return the initialized import adapter instance
77
        return $importAdapter;
78
    }
79
}
80