reviewer-1.2.x-dev/src/Reviewer/Status/StatusFactory.php

src/Reviewer/Status/StatusFactory.php
<?php

declare(strict_types=1);

namespace Drupal\reviewer\Reviewer\Status;

use Drupal\reviewer\Reviewer\Result\ResultInterface;

/**
 * Creates statuses.
 */
final readonly class StatusFactory implements StatusFactoryInterface {

  /**
   * {@inheritdoc}
   */
  public function createIgnored(Status $status): Status {
    return match ($status) {
      Status::Fail => Status::IgnoredFailure,
      Status::Error => Status::IgnoredError,
      default => $status,
    };
  }

  /**
   * {@inheritdoc}
   */
  public function createUnignored(Status $status): Status {
    return match ($status) {
      Status::IgnoredFailure => Status::Fail,
      Status::IgnoredError => Status::Error,
      default => $status,
    };
  }

  /**
   * {@inheritdoc}
   */
  public function createFromBool(bool $bool): Status {
    return $bool ? Status::Pass : Status::Fail;
  }

  /**
   * {@inheritdoc}
   */
  public function createMostSevere(array $results): Status {
    if (!$results) {
      return Status::NotRun;
    }

    $backing_values = array_map(
      fn(ResultInterface $result) => $result->getStatus()->value,
      $results,
    );
    return Status::from(max($backing_values));
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc