* Dariusz Rumiński * * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ namespace PhpCsFixer\Error; /** * Manager of errors that occur during fixing. * * @author Dariusz Rumiński * * @internal */ final class ErrorsManager { /** * @var list */ private array $errors = []; /** * Returns errors reported during linting before fixing. * * @return list */ public function getInvalidErrors(): array { return array_filter($this->errors, static fn (Error $error): bool => Error::TYPE_INVALID === $error->getType()); } /** * Returns errors reported during fixing. * * @return list */ public function getExceptionErrors(): array { return array_filter($this->errors, static fn (Error $error): bool => Error::TYPE_EXCEPTION === $error->getType()); } /** * Returns errors reported during linting after fixing. * * @return list */ public function getLintErrors(): array { return array_filter($this->errors, static fn (Error $error): bool => Error::TYPE_LINT === $error->getType()); } /** * Returns errors reported for specified path. * * @return list */ public function forPath(string $path): array { return array_values(array_filter($this->errors, static fn (Error $error): bool => $path === $error->getFilePath())); } /** * Returns true if no errors were reported. */ public function isEmpty(): bool { return [] === $this->errors; } public function report(Error $error): void { $this->errors[] = $error; } }