/**
  * Constructor.
  *
  * @param array           $repoConfig
  * @param IOInterface     $io
  * @param Config          $config
  * @param EventDispatcher $eventDispatcher
  */
 public function __construct(array $repoConfig, IOInterface $io, Config $config, EventDispatcher $eventDispatcher = null)
 {
     $repoConfig = array_merge($repoConfig, array('url' => $this->getUrl()));
     $this->repositoryManager = $repoConfig['repository-manager'];
     parent::__construct($repoConfig, $io, $config, $eventDispatcher);
     $this->assetType = Assets::createType($this->getType());
     $this->lazyProvidersUrl = $this->getPackageUrl();
     $this->providersUrl = $this->lazyProvidersUrl;
     $this->searchUrl = $this->getSearchUrl();
     $this->hasProviders = true;
     $this->rm = $repoConfig['repository-manager'];
     $this->packageFilter = isset($repoConfig['vcs-package-filter']) ? $repoConfig['vcs-package-filter'] : null;
     $this->repos = array();
     $this->searchable = (bool) $this->getOption($repoConfig['asset-options'], 'searchable', true);
     $this->fallbackProviders = false;
 }