123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- /**
- * @copyright Vertex. All rights reserved. https://www.vertexinc.com/
- * @author Mediotype https://www.mediotype.com/
- */
- namespace Vertex\Tax\Model\Api\Utility;
- use Magento\Store\Model\ScopeInterface;
- use Vertex\Mapper\MapperFactory;
- use Vertex\Tax\Model\Api\ConfigBuilder;
- use Vertex\Utility\VersionDeterminer;
- /**
- * Retrieve a mapper based on Magento configuration
- */
- class MapperFactoryProxy
- {
- /** @var ConfigBuilder */
- private $configBuilder;
- /** @var MapperFactory */
- private $factory;
- /** @var VersionDeterminer */
- private $versionDeterminer;
- /**
- * @param MapperFactory $factory
- * @param VersionDeterminer $versionDeterminer
- * @param ConfigBuilder $configBuilder
- */
- public function __construct(
- MapperFactory $factory,
- VersionDeterminer $versionDeterminer,
- ConfigBuilder $configBuilder
- ) {
- $this->factory = $factory;
- $this->versionDeterminer = $versionDeterminer;
- $this->configBuilder = $configBuilder;
- }
- /**
- * Retrieve a mapper instance given a MapperInterface
- *
- * @param string $mapperInterface Mapper Interface to create
- * @param string|null $scopeCode Scope ID to use for configuration
- * @param string $scopeType Scope Type
- * @return mixed
- * @throws \Vertex\Exception\ConfigurationException
- */
- public function getForClass($mapperInterface, $scopeCode = null, $scopeType = ScopeInterface::SCOPE_STORE)
- {
- $config = $this->configBuilder
- ->setScopeCode($scopeCode)
- ->setScopeType($scopeType)
- ->build();
- $version = $this->versionDeterminer->execute($config->getTaxAreaLookupWsdl());
- return $this->factory->getForClass($mapperInterface, $version);
- }
- }
|