/** Existing folders for abstract file objects. */ private static Enumeration<? extends FileObject> existingFolders(AbstractFileSystem fs) { return fs.existingFileObjects(fs.getAbstractRoot()); }
final Enumeration<? extends FileObject> existingFileObjects(AbstractFolder fo) { class OnlyValidAndDeep implements org.openide.util.Enumerations.Processor<Reference<AbstractFolder>,FileObject> { public FileObject process(Reference<AbstractFolder> obj, Collection<Reference<AbstractFolder>> toAdd) { AbstractFolder file = obj.get(); if (file != null) { AbstractFolder[] arr = file.subfiles(); // make the array weak for (int i = 0; i < arr.length; i++) { toAdd.add(new WeakReference<AbstractFolder>(arr[i])); } return file.isValid() ? file : null; } return null; } } Reference<AbstractFolder> ref = new WeakReference<AbstractFolder>(fo); Enumeration<Reference<AbstractFolder>> singleEn = org.openide.util.Enumerations.<Reference<AbstractFolder>>singleton(ref); return org.openide.util.Enumerations.removeNulls( org.openide.util.Enumerations.queue(singleEn, new OnlyValidAndDeep()) ); }
/** Existing folders for abstract file objects. */ private static Enumeration existingFolders (AbstractFileSystem fs) { return fs.existingFileObjects (fs.getAbstractRoot()); }
/** Existing folders for abstract file objects. */ private static Enumeration existingFolders (AbstractFileSystem fs) { return fs.existingFileObjects (fs.getAbstractRoot()); }