/**
  * Returns a path to the file for given class name
  *
  * @param string $className Name of the class
  *
  * @return string|false Path to the file with given class or false if not found
  */
 public function locateClass($className)
 {
     $filePath = $this->loader->findFile($className);
     if (!empty($filePath)) {
         $filePath = PathResolver::realpath($filePath);
     }
     return $filePath;
 }
 /**
  * File namespace constructor
  *
  * @param string          $fileName      Name of the file
  * @param string          $namespaceName Name of the namespace
  * @param Namespace_|null $namespaceNode Optional AST-node for this namespace block
  */
 public function __construct($fileName, $namespaceName, Namespace_ $namespaceNode = null)
 {
     $fileName = PathResolver::realpath($fileName);
     if (!$namespaceNode) {
         $namespaceNode = ReflectionEngine::parseFileNamespace($fileName, $namespaceName);
     }
     $this->namespaceNode = $namespaceNode;
     $this->fileName = $fileName;
 }
 /**
  * Parses a file and returns an AST for it
  *
  * @param string      $fileName Name of the file
  * @param string|null $fileContent Optional content of the file
  *
  * @return \PhpParser\Node[]
  */
 public static function parseFile($fileName, $fileContent = null)
 {
     $fileName = PathResolver::realpath($fileName);
     if (isset(self::$parsedFiles[$fileName])) {
         return self::$parsedFiles[$fileName];
     }
     if (isset(self::$maximumCachedFiles) && count(self::$parsedFiles) === self::$maximumCachedFiles) {
         array_shift(self::$parsedFiles);
     }
     if (!isset($fileContent)) {
         $fileContent = file_get_contents($fileName);
     }
     $treeNode = self::$parser->parse($fileContent);
     $treeNode = self::$traverser->traverse($treeNode);
     self::$parsedFiles[$fileName] = $treeNode;
     return $treeNode;
 }
 /**
  * ReflectionFile constructor.
  *
  * @param string $fileName Name of the file to reflect
  * @param null|array|Node[] $topLevelNodes Optional corresponding list of AST nodes for that file
  */
 public function __construct($fileName, $topLevelNodes = null)
 {
     $fileName = PathResolver::realpath($fileName);
     $this->fileName = $fileName;
     $this->topLevelNodes = $topLevelNodes ?: ReflectionEngine::parseFile($fileName);
 }