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()) ); }
/** @return enumeration of all listeners. */ private final Enumeration listeners () { if (listeners == null) { return Enumerations.empty(); } else { return Enumerations.removeNulls ( Enumerations.array (listeners.getAllListeners ()) ); } }
/** @return enumeration of all listeners. */ private final Enumeration listeners () { if (listeners == null) { return Enumerations.empty(); } else { return Enumerations.removeNulls ( Enumerations.array (listeners.getAllListeners ()) ); } }
/** * For the FileObject specified as parameter, returns the recursive enumeration * of existing children fileobjects (both folders and data). It doesn't create * any new FileObject instances. Direct children are at the begining of the enumeration. * @param fo the starting point for the recursive fileobject search * @return enumeration of currently existing fileobjects. */ protected final Enumeration existingFileObjects (FileObject fo) { class OnlyValidAndDeep implements org.openide.util.Enumerations.Processor { public Object process (Object obj, Collection toAdd) { if (obj instanceof Reference) { obj = ((Reference) obj).get(); } AbstractFileObject file = (AbstractFileObject)obj; if (file != null) { FileObject[] arr = file.subfiles (); // make the array weak for (int i = 0; i < arr.length; i++) { toAdd.add (new WeakReference (arr[i])); } return file.isValid () ? file : null; } return null; } } return org.openide.util.Enumerations.removeNulls (org.openide.util.Enumerations.queue ( org.openide.util.Enumerations.singleton (fo), new OnlyValidAndDeep () )); }
/** * For the FileObject specified as parameter, returns the recursive enumeration * of existing children fileobjects (both folders and data). It doesn't create * any new FileObject instances. Direct children are at the begining of the enumeration. * @param fo the starting point for the recursive fileobject search * @return enumeration of currently existing fileobjects. */ protected final Enumeration existingFileObjects (FileObject fo) { class OnlyValidAndDeep implements org.openide.util.Enumerations.Processor { public Object process (Object obj, Collection toAdd) { if (obj instanceof Reference) { obj = ((Reference) obj).get(); } AbstractFileObject file = (AbstractFileObject)obj; if (file != null) { FileObject[] arr = file.subfiles (); // make the array weak for (int i = 0; i < arr.length; i++) { toAdd.add (new WeakReference (arr[i])); } return file.isValid () ? file : null; } return null; } } return org.openide.util.Enumerations.removeNulls (org.openide.util.Enumerations.queue ( org.openide.util.Enumerations.singleton (fo), new OnlyValidAndDeep () )); }