/**
  * Retrieve list of parents
  *
  * @param string $type
  * @return array
  */
 public function getParents($type)
 {
     if (!class_exists($type)) {
         return $this->_default;
     }
     return $this->_classReader->getParents($type) ?: $this->_default;
 }
 /**
  * Get list of method parameters
  *
  * Retrieve an ordered list of constructor parameters.
  * Each value is an array with following entries:
  *
  * array(
  *     0, // string: Parameter name
  *     1, // string|null: Parameter type
  *     2, // bool: whether this param is required
  *     3, // mixed: default value
  * );
  *
  * @param string $className
  * @return array|null
  */
 public function getParameters($className)
 {
     // if the definition isn't found in the list gathered from the compiled file then  using reflection to find it
     if (!array_key_exists($className, $this->_definitions)) {
         return $this->reader->getConstructor($className);
     }
     $definition = $this->_definitions[$className];
     if ($definition !== null) {
         if (is_string($this->_signatures[$definition])) {
             $this->_signatures[$definition] = $this->_unpack($this->_signatures[$definition]);
         }
         return $this->_signatures[$definition];
     }
     return null;
 }
 /**
  * Retrieves list of classes for given path
  *
  * @param string $path path to dir with files
  *
  * @return array
  */
 public function getList($path)
 {
     foreach ($this->classesScanner->getList($path) as $className) {
         $this->current = $className;
         // for errorHandler function
         try {
             if ($path != $this->generationDir) {
                 // validate all classes except classes in generation dir
                 $this->validator->validate($className);
             }
             $this->relations[$className] = $this->classReader->getParents($className);
         } catch (\Magento\Framework\Exception\ValidatorException $exception) {
             $this->log->add(Log::COMPILATION_ERROR, $className, $exception->getMessage());
         } catch (\ReflectionException $e) {
             $this->log->add(Log::COMPILATION_ERROR, $className, $e->getMessage());
         }
     }
     return $this->relations;
 }
 /**
  * Retrieve parent relation information for type in a following format
  * array(
  *     'Parent_Class_Name',
  *     'Interface_1',
  *     'Interface_2',
  *     ...
  * )
  *
  * @param string $className
  * @return string[]
  */
 public function getParents($className)
 {
     return $this->classReader->getParents($className);
 }