@@ -39,16 +39,20 @@ private function __construct(File ...$files)
3939 }
4040 }
4141
42- public function add (File $ file ): self
42+ public function add (File ... $ files ): self
4343 {
44- $ this ->items [$ this ->identifier ($ file )] = $ file ;
44+ foreach ($ files as $ file ) {
45+ $ this ->items [$ this ->identifier ($ file )] = $ file ;
46+ }
4547
4648 return $ this ;
4749 }
4850
49- public function remove (File $ file ): self
51+ public function remove (File ... $ files ): self
5052 {
51- unset($ this ->items [$ this ->identifier ($ file )]);
53+ foreach ($ files as $ file ) {
54+ unset($ this ->items [$ this ->identifier ($ file )]);
55+ }
5256
5357 return $ this ;
5458 }
@@ -58,6 +62,24 @@ public function contains(File $file): bool
5862 return isset ($ this ->items [$ this ->identifier ($ file )]);
5963 }
6064
65+ public function addFileCollection (FileCollection $ fileCollection ): self
66+ {
67+ foreach ($ fileCollection as $ file ) {
68+ $ this ->add ($ file );
69+ }
70+
71+ return $ this ;
72+ }
73+
74+ public function removeFileCollection (FileCollection $ fileCollection ): self
75+ {
76+ foreach ($ fileCollection as $ file ) {
77+ $ this ->remove ($ file );
78+ }
79+
80+ return $ this ;
81+ }
82+
6183 public function filter (callable $ filter ): self
6284 {
6385 return new self (...\array_values (
@@ -111,10 +133,14 @@ public function count(): int
111133
112134 private function identifier (File $ file ): string
113135 {
114- $ namespace = $ file ->getNamespace () !== null ? ('\\' . $ file ->getNamespace ()) : '' ;
115- $ name = $ file ->getName () !== null ? ('\\' . $ file ->getName ()) : '' ;
136+ $ identifier = '' ;
116137
117- $ identifier = $ namespace . $ name ;
138+ if ($ file instanceof PhpFile) {
139+ $ namespace = $ file ->getNamespace () !== null ? ('\\' . $ file ->getNamespace ()) : '' ;
140+ $ name = $ file ->getName () !== null ? ('\\' . $ file ->getName ()) : '' ;
141+
142+ $ identifier = $ namespace . $ name ;
143+ }
118144
119145 if ($ identifier === '' ) {
120146 return \spl_object_hash ($ file );
0 commit comments