/**
  * Check the dependency graph
  *
  * @param bool $isEnable
  * @param string[] $moduleNames list of modules to be enabled/disabled
  * @param string[] $enabledModules list of enabled modules assuming enable/disable succeeds
  * @return array
  */
 private function checkDependencyGraph($isEnable, $moduleNames, $enabledModules)
 {
     $dependenciesMissingAll = [];
     $graphMode = $isEnable ? Graph::DIRECTIONAL : Graph::INVERSE;
     foreach ($moduleNames as $moduleName) {
         $dependenciesMissing = [];
         $paths = $this->graph->findPathsToReachableNodes($moduleName, $graphMode);
         foreach (array_keys($this->fullModuleList) as $module) {
             if (isset($paths[$module])) {
                 if ($isEnable && !in_array($module, $enabledModules)) {
                     $dependenciesMissing[$module] = $paths[$module];
                 } else {
                     if (!$isEnable && in_array($module, $enabledModules)) {
                         $dependenciesMissing[$module] = array_reverse($paths[$module]);
                     }
                 }
             }
         }
         $dependenciesMissingAll[$moduleName] = $dependenciesMissing;
     }
     return $dependenciesMissingAll;
 }