Your IP : 127.0.0.1


Current Path : /home/dev2.destoffenstraat.com/app/Firebear/ImportExport/Model/Import/
Upload File :
Current File : /home/dev2.destoffenstraat.com/app/Firebear/ImportExport/Model/Import/Adapter.php

<?php
/**
 * @copyright: Copyright © 2017 Firebear Studio. All rights reserved.
 * @author   : Firebear Studio <fbeardev@gmail.com>
 */

namespace Firebear\ImportExport\Model\Import;

use Firebear\ImportExport\Model\Source\Platform\AbstractPlatform;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\Filesystem\Directory\Write;
use Magento\ImportExport\Model\Import\AbstractSource;

/**
 * Class Adapter
 *
 * @package Firebear\ImportExport\Model\Import
 */
class Adapter
{

    /**
     * Create adapter instance for specified source file
     *
     * @param string $class
     * @param string $source Source file path
     * @param Write $directory
     * @param AbstractPlatform $platform
     * @param mixed $data OPTIONAL Adapter constructor options
     * @return AbstractSource
     */
    public static function findAdapterFor($class, $source, $directory, $platform = null, $data = [])
    {
        return self::factory($class, $source, $directory, $platform, $data);
    }

    /**
     * Adapter factory. Checks for availability, loads and create instance of import adapter object
     *
     * @param string $class
     * @param string $source Source file path
     * @param Write $directory
     * @param AbstractPlatform $platform
     * @param mixed $data OPTIONAL Adapter constructor options
     * @return AbstractSource
     * @throws LocalizedException
     */
    public static function factory($class, $source, $directory, $platform = null, $data = [])
    {
        if (!class_exists($class)) {
            throw new LocalizedException(
                __('\'%1\' model extension is not supported', $class)
            );
        }

        $objectManger = ObjectManager::getInstance();

        $adapter = $objectManger
            ->create(
                $class,
                [
                    'file' => $source,
                    'directory' => $directory,
                    'platform' => $platform,
                    'data' => $data
                ]
            );
        if (!$adapter instanceof AbstractSource) {
            throw new LocalizedException(
                __('Adapter must be an instance of \Magento\ImportExport\Model\Import\AbstractSource')
            );
        }
        return $adapter;
    }
}