1515import java .util .jar .JarInputStream ;
1616import java .util .zip .ZipException ;
1717import javasabr .rlib .classpath .ClassPathScanner ;
18+ import javasabr .rlib .collections .array .Array ;
19+ import javasabr .rlib .collections .array .ArrayFactory ;
20+ import javasabr .rlib .collections .array .MutableArray ;
1821import javasabr .rlib .io .impl .ReuseBytesInputStream ;
1922import javasabr .rlib .io .impl .ReuseBytesOutputStream ;
2023import javasabr .rlib .common .util .ArrayUtils ;
21- import javasabr .rlib .common .util .array .Array ;
22- import javasabr .rlib .common .util .array .ArrayFactory ;
2324import javasabr .rlib .io .util .IoUtils ;
2425import javasabr .rlib .logger .api .Logger ;
2526import javasabr .rlib .logger .api .LoggerManager ;
@@ -45,7 +46,7 @@ public class ClassPathScannerImpl implements ClassPathScanner {
4546 private static final String MODULE_INFO_CLASS = "module-info.class" ;
4647 private static final String META_INF_PREFIX = "META-INF" ;
4748
48- final Array <String > additionalPaths ;
49+ final MutableArray <String > additionalPaths ;
4950 final ClassLoader loader ;
5051
5152 Class <?>[] classes ;
@@ -55,7 +56,7 @@ public class ClassPathScannerImpl implements ClassPathScanner {
5556 boolean useSystemClassPath ;
5657
5758 public ClassPathScannerImpl (ClassLoader classLoader ) {
58- this .additionalPaths = ArrayFactory . newArray (String .class );
59+ this .additionalPaths = MutableArray . ofType (String .class );
5960 this .loader = classLoader ;
6061 this .classes = new Class [0 ];
6162 this .resources = new String [0 ];
@@ -70,20 +71,20 @@ public void useSystemClassPath(boolean useSystemClassPath) {
7071 public void addClasses (Array <Class <?>> classes ) {
7172 this .classes = ArrayUtils .combine (
7273 this .classes ,
73- classes .toArray (ArrayUtils . EMPTY_CLASS_ARRAY ),
74+ classes .toArray (),
7475 Class .class );
7576 }
7677
7778 @ Override
7879 public void addResources (Array <String > resources ) {
7980 this .resources = ArrayUtils .combine (
8081 this .resources ,
81- resources .toArray (ArrayUtils . EMPTY_STRING_ARRAY ),
82+ resources .toArray (),
8283 String .class );
8384 }
8485
8586 @ Override
86- public <T > void findImplementationsTo (Array <Class <T >> container , Class <T > interfaceClass ) {
87+ public <T > void findImplementationsTo (MutableArray <Class <T >> container , Class <T > interfaceClass ) {
8788
8889 if (!interfaceClass .isInterface ()) {
8990 throw new IllegalArgumentException ("Class " + interfaceClass + " is not interface." );
@@ -100,7 +101,7 @@ public <T> void findImplementationsTo(Array<Class<T>> container, Class<T> interf
100101 }
101102
102103 @ Override
103- public <T > void findInheritedTo (Array <Class <T >> container , Class <T > parentClass ) {
104+ public <T > void findInheritedTo (MutableArray <Class <T >> container , Class <T > parentClass ) {
104105
105106 if (Modifier .isFinal (parentClass .getModifiers ())) {
106107 throw new IllegalArgumentException ("Class " + parentClass + " is final class." );
@@ -118,7 +119,7 @@ public <T> void findInheritedTo(Array<Class<T>> container, Class<T> parentClass)
118119 }
119120
120121 @ Override
121- public void findAnnotatedTo (Array <Class <?>> container , Class <? extends Annotation > annotationClass ) {
122+ public void findAnnotatedTo (MutableArray <Class <?>> container , Class <? extends Annotation > annotationClass ) {
122123 for (Class <?> klass : classes ) {
123124 if (klass .isInterface () ||
124125 isAbstract (klass .getModifiers ()) ||
@@ -131,35 +132,35 @@ public void findAnnotatedTo(Array<Class<?>> container, Class<? extends Annotatio
131132 }
132133
133134 @ Override
134- public void foundClassesTo (Array <Class <?>> container ) {
135+ public void foundClassesTo (MutableArray <Class <?>> container ) {
135136 container .addAll (classes );
136137 }
137138
138139 @ Override
139- public void foundResourcesTo (Array <String > container ) {
140+ public void foundResourcesTo (MutableArray <String > container ) {
140141 container .addAll (resources );
141142 }
142143
143144 @ Override
144145 public Array <Class <?>> foundClasses () {
145- return Array .of ( classes );
146+ return Array .typed ( Class . class , classes );
146147 }
147148
148149 @ Override
149150 public Array <String > foundResources () {
150- return Array .of ( resources );
151+ return Array .typed ( String . class , resources );
151152 }
152153
153- protected String [] calculatePathsToScan () {
154+ protected Array < String > calculatePathsToScan () {
154155
155156 var systemClasspath = useSystemClassPath () ? classpathPaths () : ArrayUtils .EMPTY_STRING_ARRAY ;
156157 var capacity = additionalPaths .size () + systemClasspath .length ;
157158
158- var result = Array . ofType (String .class , capacity );
159+ var result = ArrayFactory . mutableArray (String .class , capacity );
159160 result .addAll (systemClasspath );
160161 result .addAll (additionalPaths );
161162
162- return result . toArray ( String . class ) ;
163+ return result ;
163164 }
164165
165166 protected String [] classpathPaths () {
@@ -170,7 +171,7 @@ private void loadClass(
170171 @ Nullable Path rootPath ,
171172 @ Nullable Path file ,
172173 String name ,
173- Array <Class <?>> container ) {
174+ MutableArray <Class <?>> container ) {
174175
175176 if (!name .endsWith (CLASS_EXTENSION )) {
176177 return ;
@@ -216,8 +217,8 @@ private void loadClass(
216217
217218 private void scanDirectory (
218219 Path rootPath ,
219- Array <Class <?>> classes ,
220- Array <String > resources ,
220+ MutableArray <Class <?>> classes ,
221+ MutableArray <String > resources ,
221222 Path directory ) {
222223 LOGGER .debug (directory , "Scanning directory:[%s]" ::formatted );
223224 try (DirectoryStream <Path > stream = Files .newDirectoryStream (directory )) {
@@ -264,7 +265,7 @@ private void scanDirectory(
264265 }
265266 }
266267
267- private void scanJar (Array <Class <?>> classes , Array <String > resources , Path jarFile ) {
268+ private void scanJar (MutableArray <Class <?>> classes , MutableArray <String > resources , Path jarFile ) {
268269 LOGGER .debug (jarFile , "Scanning jar:[%s]" ::formatted );
269270
270271 if (!Files .exists (jarFile )) {
@@ -287,8 +288,8 @@ private void scanJar(Array<Class<?>> classes, Array<String> resources, Path jarF
287288 }
288289
289290 private void scanJarInputStream (
290- Array <Class <?>> classes ,
291- Array <String > resources ,
291+ MutableArray <Class <?>> classes ,
292+ MutableArray <String > resources ,
292293 ReuseBytesOutputStream rout ,
293294 ReuseBytesInputStream rin ,
294295 byte [] buffer ,
@@ -315,7 +316,7 @@ private void scanJarInputStream(
315316 }
316317 }
317318
318- private void scanJar (Array <Class <?>> classes , Array <String > resources , InputStream jarFile ) {
319+ private void scanJar (MutableArray <Class <?>> classes , MutableArray <String > resources , InputStream jarFile ) {
319320 LOGGER .debug (jarFile , "Scanning jar:[%s]" ::formatted );
320321
321322 var rout = new ReuseBytesOutputStream ();
@@ -337,8 +338,8 @@ public void scan(@Nullable Predicate<String> filter) {
337338
338339 var paths = calculatePathsToScan ();
339340
340- Array <Class <?>> classes = Array .ofType (Class .class );
341- Array <String > resources = Array .ofType (String .class );
341+ MutableArray <Class <?>> classes = MutableArray .ofType (Class .class );
342+ MutableArray <String > resources = MutableArray .ofType (String .class );
342343
343344 for (String path : paths ) {
344345 var file = Path .of (path );
0 commit comments