/** * @param filter Filter * @return Unsorted filtered list */ public AttributedList<E> filter(final Filter<E> filter) { return this.filter(null, filter); }
public AttributedList<E> filter(final Comparator<E> comparator) { return this.filter(comparator, null); }
@Override public void chunk(final Path parent, final AttributedList<Path> list) throws ConnectionCanceledException { delegate.chunk(parent, list.filter(filter)); }
public AttributedList<Path> get(final Path directory) { if(!filtered.containsKey(directory)) { filtered.put(directory, cache.get(directory).filter(controller.getComparator(), controller.getFilter())); } return filtered.get(directory); }
public List<License> open() throws AccessDeniedException { final List<License> keys = new ArrayList<License>(); if(folder.exists()) { for(Local key : folder.list().filter(filter)) { keys.add(this.open(key)); } } return keys; }
/** * FireFTP settings are in Firefox/Profiles/.*\.default/fireFTPsites.dat */ @Override protected void parse(final ProtocolFactory protocols, final Local folder) throws AccessDeniedException { for(Local settings : folder.list().filter(new NullFilter<Local>() { @Override public boolean accept(Local file) { return file.isDirectory(); } })) { for(Local child : settings.list().filter(new NullFilter<Local>() { @Override public boolean accept(Local file) { if(file.isFile()) { return "fireFTPsites.dat".equals(file.getName()); } return false; } })) { this.read(protocols, child); } } }
@Override public List<TransferItem> list(final Session<?> session, final Path directory, final Local local, final ListProgressListener listener) throws BackgroundException { if(log.isDebugEnabled()) { log.debug(String.format("List children for %s", directory)); } final AttributedList<Path> list = session.getFeature(ListService.class).list(directory, listener).filter(comparator, filter); final Path copy = mapping.get(directory); for(Path p : list) { mapping.put(p, new Path(copy, p.getName(), p.getType(), p.attributes())); } final List<TransferItem> nullified = new ArrayList<TransferItem>(); for(Path p : list) { nullified.add(new TransferItem(p)); } return nullified; }
@Override public AttributedList<Path> search(final Path workdir, final Filter<Path> filter, final ListProgressListener listener) throws BackgroundException { final AttributedList<Path> list; if(!cache.isCached(workdir)) { list = session.getFeature(ListService.class).list(workdir, new SearchListProgressListener(filter, listener)).filter(filter); } else { list = cache.get(workdir).filter(filter); } listener.chunk(workdir, list); return list; }
@Override public NSInteger numberOfItemsInComboBox(NSComboBox combo) { return new NSInteger(cache.get(workdir).filter(comparator, filter).size()); }
@Override public List<TransferItem> list(final Session<?> session, final Path remote, final Local directory, final ListProgressListener listener) throws BackgroundException { if(log.isDebugEnabled()) { log.debug(String.format("List children for %s", directory)); } if(directory.isSymbolicLink()) { final Symlink symlink = session.getFeature(Symlink.class); if(new UploadSymlinkResolver(symlink, roots).resolve(directory)) { if(log.isDebugEnabled()) { log.debug(String.format("Do not list children for symbolic link %s", directory)); } // We can resolve the target of the symbolic link and will create a link on the remote system // using the symlink feature of the session return Collections.emptyList(); } } final List<TransferItem> children = new ArrayList<TransferItem>(); for(Local local : directory.list().filter(comparator, filter)) { children.add(new TransferItem(new Path(remote, local.getName(), local.isDirectory() ? EnumSet.of(Path.Type.directory) : EnumSet.of(Path.Type.file)), local)); } return children; }
@Override public List<TransferItem> list(final Session<?> session, final Path directory, final Local local, final ListProgressListener listener) throws BackgroundException { if(log.isDebugEnabled()) { log.debug(String.format("List children for %s", directory)); } if(directory.isSymbolicLink() && new DownloadSymlinkResolver(roots).resolve(directory)) { if(log.isDebugEnabled()) { log.debug(String.format("Do not list children for symbolic link %s", directory)); } return Collections.emptyList(); } else { final AttributedList<Path> list; if(cache.isCached(directory)) { list = cache.get(directory); } else { list = session.getFeature(ListService.class).list(directory, listener); cache.put(directory, list); } final List<TransferItem> children = new ArrayList<TransferItem>(); // Return copy with filtered result only for(Path f : new AttributedList<Path>(list.filter(comparator, filter))) { children.add(new TransferItem(f, LocalFactory.get(local, f.getName()))); } return children; } }
@Override public NSObject comboBox_objectValueForItemAtIndex(final NSComboBox sender, final NSInteger row) { return NSString.stringWithString(cache.get(workdir) .filter(comparator, filter).get(row.intValue()).getName()); } }
for(Local file : SupportDirectoryFinderFactory.get().find().list().filter(new Filter<Local>() { @Override public boolean accept(final Local file) { final Local bundle = ApplicationResourcesFinderFactory.get().find(); if(bundle.exists()) { for(Local key : bundle.list().filter(new LicenseFilter())) { log.info(String.format("Add bundled registration key %s", key)); final License registration = this.open(key);
@Override protected void parse(final ProtocolFactory protocols, final Local folder) throws AccessDeniedException { for(Local child : folder.list().filter(new NullFilter<Local>() { @Override public boolean accept(Local file) { if(file.isDirectory()) { return false; } return "ini".equals(file.getExtension()); } })) { if(child.isDirectory()) { this.parse(protocols, child); } else { this.read(protocols, child); } } }
@Override protected void parse(final ProtocolFactory protocols, final Local folder) throws AccessDeniedException { for(Local child : folder.list().filter(new Filter<Local>() { @Override public boolean accept(Local file) { if(file.isDirectory()) { return true; } return "xml".equals(file.getExtension()); } @Override public Pattern toPattern() { return Pattern.compile(".*\\.xml"); } })) { if(child.isDirectory()) { this.parse(protocols, child); } else { this.read(protocols, child); } } }
protected Map<Path, Path> compile(final Move move, final ListService list, final Path source, final Path target) throws BackgroundException { // Compile recursive list final Map<Path, Path> recursive = new LinkedHashMap<>(); recursive.put(source, target); if(source.isDirectory()) { if(!move.isRecursive(source, target)) { // sort ascending by timestamp to move older versions first final AttributedList<Path> children = list.list(source, new WorkerListProgressListener(this, listener)). filter(new TimestampComparator(true)); for(Path child : children) { if(this.isCanceled()) { throw new ConnectionCanceledException(); } recursive.putAll(this.compile(move, list, child, new Path(target, child.getName(), child.getType()))); } } } return recursive; }
@Override public void load() throws AccessDeniedException { if(log.isInfoEnabled()) { log.info(String.format("Reloading %s", folder)); } this.lock(); try { if(!folder.exists()) { new DefaultLocalDirectoryFeature().mkdir(folder); } final AttributedList<Local> groups = folder.list().filter( new NullFilter<Local>() { @Override public boolean accept(final Local file) { return file.isDirectory(); } } ); for(Local group : groups) { this.add(new FolderBookmarkCollection(group, group.getName())); } } finally { this.unlock(); } super.load(); }
protected Map<Path, Path> compile(final Copy copy, final ListService list, final Path source, final Path target) throws BackgroundException { // Compile recursive list final Map<Path, Path> recursive = new LinkedHashMap<>(); if(source.isFile() || source.isSymbolicLink()) { recursive.put(source, target); } else if(source.isDirectory()) { // Add parent before children recursive.put(source, target); if(!copy.isRecursive(source, target)) { // sort ascending by timestamp to copy older versions first final AttributedList<Path> children = list.list(source, new WorkerListProgressListener(this, listener)). filter(new TimestampComparator(true)); for(Path child : children) { if(this.isCanceled()) { throw new ConnectionCanceledException(); } recursive.putAll(this.compile(copy, list, child, new Path(target, child.getName(), child.getType()))); } } } return recursive; }
new DefaultLocalDirectoryFeature().mkdir(folder); final AttributedList<Local> bookmarks = folder.list().filter( new Filter<Local>() { @Override
for(Path child : list.list(file, listener).filter(filter)) { if(this.isCanceled()) { throw new ConnectionCanceledException();