11/*
2- * Copyright (c) 2009-2010 jMonkeyEngine
2+ * Copyright (c) 2009-2024 jMonkeyEngine
33 * All rights reserved.
44 *
55 * Redistribution and use in source and binary forms, with or without
5050import java .util .LinkedList ;
5151import java .util .List ;
5252import java .util .Set ;
53+ import java .util .TreeSet ;
5354import java .util .logging .Level ;
5455import java .util .logging .Logger ;
5556import org .netbeans .api .java .classpath .ClassPath ;
@@ -215,9 +216,7 @@ private void loadGradleClassLoader(List<URL> urls) {
215216 runtimeFiles = sourceSet .getRuntimeClassPath ();
216217 }
217218 }
218- } catch (IOException ex ) {
219- Exceptions .printStackTrace (ex );
220- } catch (IllegalArgumentException ex ) {
219+ } catch (IOException | IllegalArgumentException ex ) {
221220 Exceptions .printStackTrace (ex );
222221 }
223222
@@ -243,25 +242,31 @@ private void loadGradleClassLoader(List<URL> urls) {
243242 }
244243
245244 FileChangeListener listener = new FileChangeListener () {
245+ @ Override
246246 public void fileFolderCreated (FileEvent fe ) {
247247 fireChange (fe );
248248 }
249249
250+ @ Override
250251 public void fileDataCreated (FileEvent fe ) {
251252 fireChange (fe );
252253 }
253254
255+ @ Override
254256 public void fileChanged (FileEvent fe ) {
255257 fireChange (fe );
256258 }
257259
260+ @ Override
258261 public void fileDeleted (FileEvent fe ) {
259262 }
260263
264+ @ Override
261265 public void fileRenamed (FileRenameEvent fe ) {
262266 fireChange (fe );
263267 }
264268
269+ @ Override
265270 public void fileAttributeChanged (FileAttributeEvent fae ) {
266271 }
267272
@@ -271,26 +276,22 @@ private void fireChange(FileEvent fe) {
271276 }
272277 };
273278
274- private PropertyChangeListener classPathListener = new PropertyChangeListener () {
275- public void propertyChange (PropertyChangeEvent evt ) {
276- logger .log (Level .FINE , "Classpath event: {0}" , evt );
277- if (null != evt .getPropertyName ()) switch (evt .getPropertyName ()) {
278- case ClassPath .PROP_ROOTS -> updateClassLoader ();
279- case ClassPath .PROP_ENTRIES -> updateClassLoader ();
280- case ClassPath .PROP_INCLUDES -> updateClassLoader ();
281- default -> {
282- }
279+ private PropertyChangeListener classPathListener = (PropertyChangeEvent evt ) -> {
280+ logger .log (Level .FINE , "Classpath event: {0}" , evt );
281+ if (null != evt .getPropertyName ()) switch (evt .getPropertyName ()) {
282+ case ClassPath .PROP_ROOTS -> updateClassLoader ();
283+ case ClassPath .PROP_ENTRIES -> updateClassLoader ();
284+ case ClassPath .PROP_INCLUDES -> updateClassLoader ();
285+ default -> {
283286 }
284287 }
285288 };
286289
287290 public void updateClassLoader () {
288- ProjectManager .mutex ().postWriteRequest (new Runnable () {
289- public void run () {
290- synchronized (classPathItems ) {
291- clearClassLoader ();
292- loadClassLoader ();
293- }
291+ ProjectManager .mutex ().postWriteRequest (() -> {
292+ synchronized (classPathItems ) {
293+ clearClassLoader ();
294+ loadClassLoader ();
294295 }
295296 });
296297 notifyClassPathListeners ();
@@ -303,6 +304,7 @@ public void setAssetEventListener(AssetEventListener listener) {
303304
304305 private void prepAssetEventListeners () {
305306 super .setAssetEventListener (new AssetEventListener () {
307+ @ Override
306308 public void assetLoaded (AssetKey ak ) {
307309 synchronized (assetEventListeners ) {
308310 for (AssetEventListener assetEventListener : assetEventListeners ) {
@@ -311,6 +313,7 @@ public void assetLoaded(AssetKey ak) {
311313 }
312314 }
313315
316+ @ Override
314317 public void assetRequested (AssetKey ak ) {
315318 synchronized (assetEventListeners ) {
316319 for (AssetEventListener assetEventListener : assetEventListeners ) {
@@ -319,6 +322,7 @@ public void assetRequested(AssetKey ak) {
319322 }
320323 }
321324
325+ @ Override
322326 public void assetDependencyNotFound (AssetKey ak , AssetKey ak1 ) {
323327 synchronized (assetEventListeners ) {
324328 for (AssetEventListener assetEventListener : assetEventListeners ) {
@@ -425,6 +429,7 @@ public FileObject createAsset(String path, FileObject source) {
425429
426430 /**
427431 * Adds a locator to a folder within the main project directory
432+ * @param relativePath
428433 */
429434 public void addFolderLocator (String relativePath ) {
430435 String string = project .getProjectDirectory ().getPath () + "/" + relativePath + "/" ;
@@ -506,12 +511,12 @@ public String[] getMatDefs(boolean includeDependencies) {
506511 return filesWithSuffix ("j3md" , includeDependencies );
507512 }
508513
509- public List <String > getProjectShaderNodeDefs () {
510- return collectProjectFilesWithSuffix ("j3sn" , new LinkedList <>());
514+ public Set <String > getProjectShaderNodeDefs () {
515+ return collectProjectFilesWithSuffix ("j3sn" , new TreeSet <>());
511516 }
512517
513- public List <String > getDependenciesShaderNodeDefs () {
514- return collectDependenciesFilesWithSuffix ("j3sn" , new LinkedList <>());
518+ public Set <String > getDependenciesShaderNodeDefs () {
519+ return collectDependenciesFilesWithSuffix ("j3sn" , new TreeSet <>());
515520 }
516521
517522 public String [] getAssetsWithSuffix (String string ) {
@@ -523,20 +528,20 @@ public String[] getAssetsWithSuffix(String string, boolean includeDependencies)
523528 }
524529
525530 private String [] filesWithSuffix (String string , boolean includeDependencies ) {
526- List <String > list = collectFilesWithSuffix (string , includeDependencies );
531+ Set <String > list = collectFilesWithSuffix (string , includeDependencies );
527532 return list .toArray (String []::new );
528533 }
529534
530- private List <String > collectFilesWithSuffix (String suffix , boolean includeDependencies ) {
531- List <String > list = new LinkedList <>();
535+ private Set <String > collectFilesWithSuffix (String suffix , boolean includeDependencies ) {
536+ Set <String > list = new TreeSet <>();
532537 collectProjectFilesWithSuffix (suffix , list );
533538 if (includeDependencies ) {
534539 collectDependenciesFilesWithSuffix (suffix , list );
535540 }
536541 return list ;
537542 }
538543
539- private List <String > collectProjectFilesWithSuffix (String suffix , List <String > list ) {
544+ private Set <String > collectProjectFilesWithSuffix (String suffix , Set <String > list ) {
540545 FileObject assetsFolder = getAssetFolder ();
541546 if (assetsFolder != null ) {
542547 Enumeration <FileObject > assets = (Enumeration <FileObject >) assetsFolder .getChildren (true );
@@ -550,12 +555,9 @@ private List<String> collectProjectFilesWithSuffix(String suffix, List<String> l
550555 return list ;
551556 }
552557
553- private List <String > collectDependenciesFilesWithSuffix (String suffix , List <String > list ) {
558+ private Set <String > collectDependenciesFilesWithSuffix (String suffix , Set <String > list ) {
554559 synchronized (classPathItems ) {
555- // TODO I need to find out if classPathItems contains all jars added to a project
556- Iterator <ClassPathItem > classPathItemsIter = classPathItems .iterator ();
557- while (classPathItemsIter .hasNext ()) {
558- ClassPathItem classPathItem = classPathItemsIter .next ();
560+ for (ClassPathItem classPathItem : classPathItems ) {
559561 FileObject jarFile = classPathItem .object ;
560562
561563 // Gradle projects don't know that the dependency is a Jar file
@@ -572,19 +574,18 @@ private List<String> collectDependenciesFilesWithSuffix(String suffix, List<Stri
572574 }
573575 }
574576 }
575-
576577 }
577- return list ;
578+ // TODO I need to find out if classPathItems contains all jars added to a project
579+ return list ;
578580 }
579581 }
580582
581583 public InputStream getResourceAsStream (String name ) {
582584 InputStream in = null ;//JmeSystem.getResourceAsStream(name);
583585 synchronized (classPathItems ) {
584586 // TODO I need to find out if classPathItems contains all jars added to a project
585- Iterator <ClassPathItem > classPathItemsIter = classPathItems .iterator ();
586- while (classPathItemsIter .hasNext ()) {
587- ClassPathItem classPathItem = classPathItemsIter .next ();
587+
588+ for (ClassPathItem classPathItem : classPathItems ) {
588589 FileObject jarFile = classPathItem .object ;
589590
590591 Enumeration <FileObject > jarEntry ;
@@ -692,12 +693,10 @@ public void removeClassPathEventListener(ClassPathChangeListener listener) {
692693
693694 private void notifyClassPathListeners () {
694695 final ProjectAssetManager pm = this ;
695- java .awt .EventQueue .invokeLater (new Runnable () {
696- public void run () {
697- synchronized (classPathListeners ) {
698- for (ClassPathChangeListener classPathChangeListener : classPathListeners ) {
699- classPathChangeListener .classPathChanged (pm );
700- }
696+ java .awt .EventQueue .invokeLater (() -> {
697+ synchronized (classPathListeners ) {
698+ for (ClassPathChangeListener classPathChangeListener : classPathListeners ) {
699+ classPathChangeListener .classPathChanged (pm );
701700 }
702701 }
703702 });
@@ -729,10 +728,12 @@ public DummyProject(ProjectAssetManager pm) {
729728 this .pm = pm ;
730729 }
731730
731+ @ Override
732732 public Lookup getLookup () {
733733 return Lookups .fixed (this , pm );
734734 }
735735
736+ @ Override
736737 public FileObject getProjectDirectory () {
737738 if (folder != null ) {
738739 return folder ;
@@ -743,7 +744,6 @@ public FileObject getProjectDirectory() {
743744
744745 private static class ClassPathItem {
745746
746- ClassPath path ;
747747 FileObject object ;
748748 FileChangeListener listener ;
749749
0 commit comments