| 1 | <?php  | 
            ||
| 9 | abstract class Extension  | 
            ||
| 10 | { | 
            ||
| 11 | protected const IDENTIFIERS_SEPARATOR = '.';  | 
            ||
| 12 | |||
| 13 | /** @var array */  | 
            ||
| 14 | private $identifiers;  | 
            ||
| 15 | |||
| 16 | 38 | protected function __construct(string ...$identifiers)  | 
            |
| 24 | |||
| 25 | 85 | public static function empty()  | 
            |
| 35 | |||
| 36 | /**  | 
            ||
| 37 | * @throws InvalidVersion  | 
            ||
| 38 | */  | 
            ||
| 39 | abstract protected function validate(string $identifier): void;  | 
            ||
| 40 | |||
| 41 | 8 | public static function from(string $identifier, string ...$identifiers)  | 
            |
| 45 | |||
| 46 | 30 | public static function fromString(string $extension)  | 
            |
| 50 | |||
| 51 | 58 | public function getIdentifiers(): array  | 
            |
| 55 | |||
| 56 | public function isEmpty(): bool  | 
            ||
| 60 | |||
| 61 | 9 | public function toString(): string  | 
            |
| 65 | |||
| 66 | public function __toString(): string  | 
            ||
| 70 | }  | 
            ||
| 71 |