reviewer-1.2.x-dev/src/Reviewer/Result/ResultFactory.php
src/Reviewer/Result/ResultFactory.php
<?php
declare(strict_types=1);
namespace Drupal\reviewer\Reviewer\Result;
use Drupal\reviewer\Reviewer\IgnorerInterface;
use Drupal\reviewer\Reviewer\Status\Status;
use Drupal\reviewer\Reviewer\Status\StatusFactoryInterface;
/**
* Creates results.
*/
final readonly class ResultFactory implements ResultFactoryInterface {
// phpcs:ignore Drupal.Commenting.FunctionComment.Missing
public function __construct(
private IgnorerInterface $ignorer,
private StatusFactoryInterface $statusFactory,
) {}
/**
* {@inheritdoc}
*/
public function createResult(
string $id,
Status $status,
string $message,
?bool $fixable = NULL,
): IndividualResultInterface {
if ($this->ignorer->isIgnored($id)) {
$status = $this->statusFactory->createIgnored($status);
$message = $this->ignorer->ignoredReason($id);
}
return new Result($id, $status, $message, $fixable);
}
/**
* {@inheritdoc}
*/
public function createCollection(
string $id,
array $results = [],
): CollectionResultInterface {
return new CollectionResult($this->statusFactory, $id, $results);
}
}
