* @readonly
*/
private $rectorClass;
/**
* @param class-string|RectorInterface $rectorClass
*/
public function __construct($rectorClass, int $line)
{
$this->line = $line;
if ($rectorClass instanceof RectorInterface) {
$rectorClass = \get_class($rectorClass);
}
$this->rectorClass = $rectorClass;
}
/**
* @return class-string
*/
public function getRectorClass() : string
{
return $this->rectorClass;
}
/**
* @param array $json
* @return $this
*/
public static function decode(array $json) : \RectorPrefix202411\Symplify\EasyParallel\Contract\SerializableInterface
{
/** @var class-string $rectorClass */
$rectorClass = $json[self::KEY_RECTOR_CLASS];
Assert::string($rectorClass);
$line = $json[self::KEY_LINE];
Assert::integer($line);
return new self($rectorClass, $line);
}
/**
* @return array{rector_class: class-string, line: int}
*/
public function jsonSerialize() : array
{
return [self::KEY_RECTOR_CLASS => $this->rectorClass, self::KEY_LINE => $this->line];
}
}