33namespace CodedMonkey \Dirigent \Doctrine \Entity ;
44
55use CodedMonkey \Dirigent \Doctrine \Repository \MetadataRepository ;
6+ use CodedMonkey \Dirigent \Entity \MetadataLinkType ;
67use Composer \Package \Version \VersionParser ;
78use Composer \Pcre \Preg ;
89use Doctrine \Common \Collections \ArrayCollection ;
@@ -101,42 +102,42 @@ class Metadata extends TrackedEntity implements \Stringable
101102 */
102103 #[ORM \OneToMany(targetEntity: MetadataRequireLink::class, mappedBy: 'metadata ' , cascade: ['persist ' , 'detach ' , 'remove ' ])]
103104 #[ORM \OrderBy(['index ' => 'ASC ' ])]
104- private Collection $ require ;
105+ private Collection $ requireLinks ;
105106
106107 /**
107108 * @var Collection<int, MetadataDevRequireLink>
108109 */
109110 #[ORM \OneToMany(targetEntity: MetadataDevRequireLink::class, mappedBy: 'metadata ' , cascade: ['persist ' , 'detach ' , 'remove ' ])]
110111 #[ORM \OrderBy(['index ' => 'ASC ' ])]
111- private Collection $ devRequire ;
112+ private Collection $ devRequireLinks ;
112113
113114 /**
114115 * @var Collection<int, MetadataConflictLink>
115116 */
116117 #[ORM \OneToMany(targetEntity: MetadataConflictLink::class, mappedBy: 'metadata ' , cascade: ['persist ' , 'detach ' , 'remove ' ])]
117118 #[ORM \OrderBy(['index ' => 'ASC ' ])]
118- private Collection $ conflict ;
119+ private Collection $ conflictLinks ;
119120
120121 /**
121122 * @var Collection<int, MetadataProvideLink>
122123 */
123124 #[ORM \OneToMany(targetEntity: MetadataProvideLink::class, mappedBy: 'metadata ' , cascade: ['persist ' , 'detach ' , 'remove ' ])]
124125 #[ORM \OrderBy(['index ' => 'ASC ' ])]
125- private Collection $ provide ;
126+ private Collection $ provideLinks ;
126127
127128 /**
128129 * @var Collection<int, MetadataReplaceLink>
129130 */
130131 #[ORM \OneToMany(targetEntity: MetadataReplaceLink::class, mappedBy: 'metadata ' , cascade: ['persist ' , 'detach ' , 'remove ' ])]
131132 #[ORM \OrderBy(['index ' => 'ASC ' ])]
132- private Collection $ replace ;
133+ private Collection $ replaceLinks ;
133134
134135 /**
135136 * @var Collection<int, MetadataSuggestLink>
136137 */
137138 #[ORM \OneToMany(targetEntity: MetadataSuggestLink::class, mappedBy: 'metadata ' , cascade: ['persist ' , 'detach ' , 'remove ' ])]
138139 #[ORM \OrderBy(['index ' => 'ASC ' ])]
139- private Collection $ suggest ;
140+ private Collection $ suggestLinks ;
140141
141142 /**
142143 * @var Collection<int, Keyword>
@@ -149,12 +150,12 @@ public function __construct(Version $version)
149150 $ this ->version = $ version ;
150151 $ this ->package = $ version ->getPackage ();
151152
152- $ this ->require = new ArrayCollection ();
153- $ this ->devRequire = new ArrayCollection ();
154- $ this ->conflict = new ArrayCollection ();
155- $ this ->provide = new ArrayCollection ();
156- $ this ->replace = new ArrayCollection ();
157- $ this ->suggest = new ArrayCollection ();
153+ $ this ->requireLinks = new ArrayCollection ();
154+ $ this ->devRequireLinks = new ArrayCollection ();
155+ $ this ->conflictLinks = new ArrayCollection ();
156+ $ this ->provideLinks = new ArrayCollection ();
157+ $ this ->replaceLinks = new ArrayCollection ();
158+ $ this ->suggestLinks = new ArrayCollection ();
158159 $ this ->keywords = new ArrayCollection ();
159160 }
160161
@@ -415,49 +416,49 @@ public function getPackage(): Package
415416 /**
416417 * @return Collection<int, MetadataRequireLink>
417418 */
418- public function getRequire (): Collection
419+ public function getRequireLinks (): Collection
419420 {
420- return $ this ->require ;
421+ return $ this ->requireLinks ;
421422 }
422423
423424 /**
424425 * @return Collection<int, MetadataDevRequireLink>
425426 */
426- public function getDevRequire (): Collection
427+ public function getDevRequireLinks (): Collection
427428 {
428- return $ this ->devRequire ;
429+ return $ this ->devRequireLinks ;
429430 }
430431
431432 /**
432433 * @return Collection<int, MetadataConflictLink>
433434 */
434- public function getConflict (): Collection
435+ public function getConflictLinks (): Collection
435436 {
436- return $ this ->conflict ;
437+ return $ this ->conflictLinks ;
437438 }
438439
439440 /**
440441 * @return Collection<int, MetadataProvideLink>
441442 */
442- public function getProvide (): Collection
443+ public function getProvideLinks (): Collection
443444 {
444- return $ this ->provide ;
445+ return $ this ->provideLinks ;
445446 }
446447
447448 /**
448449 * @return Collection<int, MetadataReplaceLink>
449450 */
450- public function getReplace (): Collection
451+ public function getReplaceLinks (): Collection
451452 {
452- return $ this ->replace ;
453+ return $ this ->replaceLinks ;
453454 }
454455
455456 /**
456457 * @return Collection<int, MetadataSuggestLink>
457458 */
458- public function getSuggest (): Collection
459+ public function getSuggestLinks (): Collection
459460 {
460- return $ this ->suggest ;
461+ return $ this ->suggestLinks ;
461462 }
462463
463464 /**
@@ -621,19 +622,10 @@ public function toComposerArray(): array
621622 ];
622623
623624 // Set links
624- $ supportedLinkTypes = [
625- 'require ' => $ this ->require ,
626- 'require-dev ' => $ this ->devRequire ,
627- 'suggest ' => $ this ->suggest ,
628- 'conflict ' => $ this ->conflict ,
629- 'provide ' => $ this ->provide ,
630- 'replace ' => $ this ->replace ,
631- ];
632-
633- foreach ($ supportedLinkTypes as $ linkType => $ linkCollection ) {
625+ foreach (MetadataLinkType::cases () as $ linkType ) {
634626 /** @var AbstractMetadataLink $link */
635- foreach ($ linkCollection as $ link ) {
636- $ data [$ linkType ][$ link ->getLinkedPackageName ()] = $ link ->getLinkedVersionConstraint ();
627+ foreach ($ linkType -> getMetadataLinks ( $ this ) as $ link ) {
628+ $ data [$ linkType-> value ][$ link ->getLinkedPackageName ()] = $ link ->getLinkedVersionConstraint ();
637629 }
638630 }
639631
0 commit comments