-
-
Notifications
You must be signed in to change notification settings - Fork 44
/
SupportedRelease.php
72 lines (57 loc) · 1.75 KB
/
SupportedRelease.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php declare(strict_types=1);
/*
* This file is part of Phive.
*
* Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de> and contributors
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
*/
namespace PharIo\Phive;
use PharIo\Version\Version;
class SupportedRelease implements Release {
/** @var Version */
private $version;
/** @var PharUrl */
private $url;
/** @var null|Hash */
private $expectedHash;
/** @var string */
private $name;
/** @var null|Url */
private $signatureUrl;
public function __construct(string $name, Version $version, PharUrl $url, ?Url $signatureUrl = null, ?Hash $expectedHash = null) {
$this->name = $name;
$this->version = $version;
$this->url = $url;
$this->signatureUrl = $signatureUrl;
$this->expectedHash = $expectedHash;
}
public function isSupported(): bool {
return true;
}
public function getName(): string {
return $this->name;
}
public function getVersion(): Version {
return $this->version;
}
public function getUrl(): PharUrl {
return $this->url;
}
/** @psalm-assert-if-true Url $this->signatureUrl */
public function hasSignatureUrl(): bool {
return $this->signatureUrl !== null;
}
public function getSignatureUrl(): ?Url {
return $this->signatureUrl;
}
/** @psalm-assert-if-true Hash $this->expectedHash */
public function hasExpectedHash(): bool {
return $this->expectedHash !== null;
}
public function getExpectedHash(): ?Hash {
return $this->expectedHash;
}
}