%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/sale/lib/exchange/ |
Current File : /home/bitrix/www/bitrix/modules/sale/lib/exchange/managerimport.php |
<?php namespace Bitrix\Sale\Exchange; use Bitrix\Main\ArgumentOutOfRangeException; use Bitrix\Sale\Exchange\Internals\LoggerDiag; use Bitrix\Sale\Exchange\OneC\ImportCollision; use Bitrix\Sale\Exchange\OneC\ImportCriterionBase; final class ManagerImport extends ManagerBase { /** @var ICollision $collision */ protected $collision = null; /** @var ICriterion $criterion */ protected $criterion = null; /** * @return string */ static public function getDirectionType() { return self::EXCHANGE_DIRECTION_IMPORT; } /** * @param ImportBase $entity */ static public function configure(ImportBase $entity) { $config = static::getImportByType($entity->getOwnerTypeId()); $entity->loadSettings($config->settings); $entity->loadCollision($config->collision); $entity->loadCriterion($config->criterion); $entity->loadLogger($config->logger); } /** * Add instance of this manager to collection * @param $typeId * @param ISettingsImport $settings * @param ICollision $collision * @param ICriterion $criterion * @return mixed * @throws ArgumentOutOfRangeException * @internal */ static public function registerInstance($typeId, ISettingsImport $settings, ICollision $collision = null, ICriterion $criterion = null) { static::IsDefinedTypeId($typeId); if(self::$instance[$typeId] === null) { $manager = new static(); $manager->settings = $settings; $manager->collision = $collision !== null ? $collision : new ImportCollision(); $manager->criterion = $criterion !== null ? $criterion : new ImportCriterionBase(); $manager->logger = new LoggerDiag(); self::$instance[$typeId] = $manager; } return self::$instance[$typeId]; } /** * @param $typeId * @return ISettingsImport * @throws ArgumentOutOfRangeException */ static public function getSettingsByType($typeId) { static::IsDefinedTypeId($typeId); $config = static::getImportByType($typeId); return $config->settings; } }