<?php/** * Data Definitions. * * LICENSE * * This source file is subject to the GNU General Public License version 3 (GPLv3) * For the full copyright and license information, please view the LICENSE.md and gpl-3.0.txt * files that are distributed with this source code. * * @copyright  Copyright (c) 2016-2019 w-vision AG (https://www.w-vision.ch) * @license    https://github.com/w-vision/DataDefinitions/blob/master/gpl-3.0.txt GNU General Public License version 3 (GPLv3) */declare(strict_types=1);namespace Wvision\Bundle\DataDefinitionsBundle;use Composer\InstalledVersions;use CoreShop\Bundle\ResourceBundle\AbstractResourceBundle;use CoreShop\Bundle\ResourceBundle\CoreShopResourceBundle;use CoreShop\Bundle\RuleBundle\CoreShopRuleBundle;use Pimcore\Extension\Bundle\Installer\InstallerInterface;use Pimcore\Extension\Bundle\PimcoreBundleInterface;use Pimcore\HttpKernel\BundleCollection\BundleCollection;use Symfony\Component\DependencyInjection\ContainerBuilder;use Wvision\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler\CleanerRegistryCompilerPass;use Wvision\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler\ExportProviderRegistryCompilerPass;use Wvision\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler\ExportRunnerRegistryCompilerPass;use Wvision\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler\FetcherRegistryCompilerPass;use Wvision\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler\FilterRegistryCompilerPass;use Wvision\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler\GetterRegistryCompilerPass;use Wvision\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler\ImportRuleActionPass;use Wvision\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler\ImportRuleConditionPass;use Wvision\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler\InterpreterRegistryCompilerPass;use Wvision\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler\LoaderRegistryCompilerPass;use Wvision\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler\PersisterRegistryCompilerPass;use Wvision\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler\ProviderRegistryCompilerPass;use Wvision\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler\RunnerRegistryCompilerPass;use Wvision\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler\SetterRegistryCompilerPass;class DataDefinitionsBundle extends AbstractResourceBundle{    public static function registerDependentBundles(BundleCollection $collection): void    {        parent::registerDependentBundles($collection);        $collection->addBundles([            new CoreShopRuleBundle(),        ], 3500);    }    public function getSupportedDrivers(): array    {        return [            CoreShopResourceBundle::DRIVER_PIMCORE,        ];    }    public function build(ContainerBuilder $builder): void    {        parent::build($builder);        $builder->addCompilerPass(new CleanerRegistryCompilerPass());        $builder->addCompilerPass(new FilterRegistryCompilerPass());        $builder->addCompilerPass(new InterpreterRegistryCompilerPass());        $builder->addCompilerPass(new ProviderRegistryCompilerPass());        $builder->addCompilerPass(new RunnerRegistryCompilerPass());        $builder->addCompilerPass(new SetterRegistryCompilerPass());        $builder->addCompilerPass(new LoaderRegistryCompilerPass());        $builder->addCompilerPass(new GetterRegistryCompilerPass());        $builder->addCompilerPass(new FetcherRegistryCompilerPass());        $builder->addCompilerPass(new ExportProviderRegistryCompilerPass());        $builder->addCompilerPass(new ExportRunnerRegistryCompilerPass());        $builder->addCompilerPass(new ImportRuleConditionPass());        $builder->addCompilerPass(new ImportRuleActionPass());        $builder->addCompilerPass(new PersisterRegistryCompilerPass());    }    public function getVersion(): string    {        if (InstalledVersions::isInstalled('w-vision/data-definitions')) {            return InstalledVersions::getVersion('w-vision/data-definitions');        }        return '';    }    public function getNiceName(): string    {        return 'Data Definitions';    }    public function getDescription(): string    {        return 'Data Definitions allows you to create reusable Definitions for Importing all kinds of data into DataObjects.';    }    public function getInstaller(): ?InstallerInterface    {        return $this->container->get(Installer::class);    }    public function getAdminIframePath(): ?string    {        return null;    }    public function getJsPaths(): array    {        return [];    }    public function getCssPaths(): array    {        return [];    }    public function getEditmodeJsPaths(): array    {        return [];    }    public function getEditmodeCssPaths(): array    {        return [];    }}