-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathAbstractMetadataLink.php
More file actions
72 lines (57 loc) · 1.56 KB
/
AbstractMetadataLink.php
File metadata and controls
72 lines (57 loc) · 1.56 KB
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
namespace CodedMonkey\Dirigent\Doctrine\Entity;
use CodedMonkey\Dirigent\Entity\MetadataLinkType;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
#[ORM\MappedSuperclass]
abstract class AbstractMetadataLink
{
#[ORM\Id]
#[ORM\Column]
#[ORM\GeneratedValue]
private ?int $id = null;
protected Metadata $metadata;
#[ORM\Column(length: 191)]
private string $linkedPackageName;
#[ORM\Column(type: Types::TEXT)]
private string $linkedVersionConstraint;
#[ORM\Column]
private int $index;
public function __construct(
Metadata $metadata,
string $linkedPackageName,
string $linkedVersionConstraint,
int $index,
) {
$this->metadata = $metadata;
$this->linkedPackageName = $linkedPackageName;
$this->linkedVersionConstraint = $linkedVersionConstraint;
$this->index = $index;
$this->addToCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getMetadata(): Metadata
{
return $this->metadata;
}
public function getLinkedPackageName(): string
{
return $this->linkedPackageName;
}
public function getLinkedVersionConstraint(): string
{
return $this->linkedVersionConstraint;
}
public function getIndex(): int
{
return $this->index;
}
private function addToCollection(): void
{
$linkType = MetadataLinkType::fromClass(static::class);
$linkType->getMetadataLinks($this->metadata)->add($this);
}
}