rector/src/StaticTypeMapper/ValueObject/Type/ShortenedObjectType.php
2024-01-02 02:40:38 +00:00

44 lines
1.0 KiB
PHP

<?php
declare (strict_types=1);
namespace Rector\StaticTypeMapper\ValueObject\Type;
use PHPStan\TrinaryLogic;
use PHPStan\Type\ObjectType;
use PHPStan\Type\Type;
/**
* @api
*/
final class ShortenedObjectType extends ObjectType
{
/**
* @var class-string
* @readonly
*/
private $fullyQualifiedName;
/**
* @param class-string $fullyQualifiedName
*/
public function __construct(string $shortName, string $fullyQualifiedName)
{
$this->fullyQualifiedName = $fullyQualifiedName;
parent::__construct($shortName);
}
public function isSuperTypeOf(Type $type) : TrinaryLogic
{
$fullyQualifiedObjectType = new ObjectType($this->fullyQualifiedName);
return $fullyQualifiedObjectType->isSuperTypeOf($type);
}
public function getShortName() : string
{
return $this->getClassName();
}
/**
* @return class-string
*/
public function getFullyQualifiedName() : string
{
return $this->fullyQualifiedName;
}
}