1
0
Fork 0
php-language-server/src/Index/DependenciesIndex.php

66 lines
1.4 KiB
PHP
Raw Normal View History

2016-12-13 00:51:02 +00:00
<?php
declare(strict_types = 1);
namespace LanguageServer\Index;
class DependenciesIndex extends AbstractAggregateIndex
{
/**
* Map from package name to index
*
* @var Index[]
*/
protected $indexes = [];
/**
* @return Index[]
*/
protected function getIndexes(): array
{
return $this->indexes;
}
/**
* @param string $packageName
* @return Index
*/
public function getDependencyIndex(string $packageName): Index
{
if (!isset($this->indexes[$packageName])) {
2017-01-25 00:38:11 +00:00
$index = new Index;
$this->indexes[$packageName] = $index;
$this->registerIndex($index);
2016-12-13 00:51:02 +00:00
}
return $this->indexes[$packageName];
}
2017-02-03 23:20:38 +00:00
/**
* @param string $packageName
* @param Index $index
* @return void
*/
public function setDependencyIndex(string $packageName, Index $index)
{
$this->indexes[$packageName] = $index;
$this->registerIndex($index);
}
2016-12-13 00:51:02 +00:00
/**
* @param string $packageName
* @return void
*/
public function removeDependencyIndex(string $packageName)
{
unset($this->indexes[$packageName]);
}
/**
* @param string $packageName
* @return bool
*/
public function hasDependencyIndex(string $packageName): bool
{
return isset($this->indexes[$packageName]);
}
}