71 lines
1.4 KiB
PHP
71 lines
1.4 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Jose\Component\KeyManagement\Analyzer;
|
|
|
|
use JsonSerializable;
|
|
|
|
class Message implements JsonSerializable
|
|
{
|
|
final public const SEVERITY_LOW = 'low';
|
|
|
|
final public const SEVERITY_MEDIUM = 'medium';
|
|
|
|
final public const SEVERITY_HIGH = 'high';
|
|
|
|
private function __construct(
|
|
private readonly string $message,
|
|
private readonly string $severity
|
|
) {
|
|
}
|
|
|
|
/**
|
|
* Creates a message with severity=low.
|
|
*/
|
|
public static function low(string $message): self
|
|
{
|
|
return new self($message, self::SEVERITY_LOW);
|
|
}
|
|
|
|
/**
|
|
* Creates a message with severity=medium.
|
|
*/
|
|
public static function medium(string $message): self
|
|
{
|
|
return new self($message, self::SEVERITY_MEDIUM);
|
|
}
|
|
|
|
/**
|
|
* Creates a message with severity=high.
|
|
*/
|
|
public static function high(string $message): self
|
|
{
|
|
return new self($message, self::SEVERITY_HIGH);
|
|
}
|
|
|
|
/**
|
|
* Returns the message.
|
|
*/
|
|
public function getMessage(): string
|
|
{
|
|
return $this->message;
|
|
}
|
|
|
|
/**
|
|
* Returns the severity of the message.
|
|
*/
|
|
public function getSeverity(): string
|
|
{
|
|
return $this->severity;
|
|
}
|
|
|
|
public function jsonSerialize(): array
|
|
{
|
|
return [
|
|
'message' => $this->message,
|
|
'severity' => $this->severity,
|
|
];
|
|
}
|
|
}
|