2namespace Bitrix\Sale\Exchange;
5use Bitrix\Main\ArgumentOutOfRangeException;
6use Bitrix\Sale\Exchange\Internals\LoggerDiag;
7use Bitrix\Sale\Exchange\OneC\ImportCollision;
8use Bitrix\Sale\Exchange\OneC\ImportCriterionBase;
12 private static $instance =
null;
25 private static function getInstance()
27 if(self::$instance ===
null)
29 self::$instance =
new static();
31 return self::$instance;
40 $config = static::getImportByType($typeId);
44 $import->loadSettings(
$config->settings);
45 $import->loadCollision(
$config->collision);
46 $import->loadCriterion(
$config->criterion);
47 $import->loadLogger(
$config->logger);
66 $typeId = (int)$typeId;
69 if(!EntityType::IsDefined($typeId))
74 if(self::$instance[$typeId] ===
null)
84 return self::$instance[$typeId];
93 private static function getImportByType($typeId)
97 $typeId = (int)$typeId;
100 if(!EntityType::IsDefined($typeId))
105 $import = static::getInstance();
106 return isset($import[$typeId]) ? $import[$typeId] :
null;
118 $typeId = (int)$typeId;
121 if(!EntityType::IsDefined($typeId))
126 $config = static::getImportByType($typeId);
static create($entityTypeID, $parentEntityContext=null)
static getSettingsByType($typeId)
static createImport($typeId)
static registerInstance($typeId, ISettings $settings, ICollision $collision=null, ICriterion $criterion=null)