private function parseSource(Source $source, Filter $parentFilter = null) { $filter = new Filter($parentFilter, $source->getName(), $source->getExtensions()); foreach ($source->getSources() as $subSource) { $this->parseSource($subSource, $filter); } foreach ($source->getPaths() as $path) { if (is_dir($path)) { $this->parseDirectory($path, $filter, $source->getExpand()); } elseif (is_file($path)) { $filter->addFile($path); } else { throw new RuntimeException(sprintf('The path "%s" does not exists.', $path)); } } return $filter; }
private function buildCompileCommandsForSource(ArrayObject $result, Project $project, Configuration $configuration, Source $source) { foreach ($source->getPaths() as $path) { if (is_dir($path)) { $this->buildCompileCommandsForDirectory($result, $project, $configuration, $path, $source->getExpand()); } elseif (is_file($path)) { $this->buildCompileCommandForFile($result, $project, $configuration, $path); } else { throw new RuntimeException('Invalid path provided: ' . $path); } } }
protected function parseSource($data) { $source = new Source(); if (array_key_exists('extensions', $data)) { $source->setExtensions($data['extensions']); } if (array_key_exists('name', $data)) { $source->setName($data['name']); } if (array_key_exists('paths', $data)) { $source->setPaths($data['paths']); } if (array_key_exists('sources', $data)) { if (is_bool($data['sources'])) { $source->setExpand($data['sources']); } else { $sources = []; foreach ($data['sources'] as $sourceData) { $sources[] = $this->parseSource($sourceData); } $source->setSources($sources); } } return $source; }