@Override public void chunk(final Path folder, final AttributedList<Path> list) throws ConnectionCanceledException { for(ListProgressListener listener : proxy) { listener.chunk(folder, list); } }
@Override public void message(final String message) { delegate.message(message); } }
@Override public ListProgressListener reset() { return proxy.reset(); }
@Override public void chunk(final Path folder, final AttributedList<Path> list) throws ConnectionCanceledException { super.chunk(folder, list); delegate.chunk(folder, list); }
@Override public void message(final String message) { delegate.message(message); } }
@Override public AttributedList<Path> list(final Path directory, final ListProgressListener listener) throws BackgroundException { try { return delegate.list(directory, new ProxyListProgressListener(finder, listener)); } catch(VaultFoundListCanceledException finder) { final Vault cryptomator = finder.getVault(); if(log.isInfoEnabled()) { log.info(String.format("Found vault %s", cryptomator)); } return delegate.list(cryptomator.encrypt(session, directory), new DecryptingListProgressListener(session, cryptomator, listener.reset())); } }
private void addPaths(final AttributedList<Path> list, final Path workdir, final ListProgressListener listener, final List<Path> foundObjects) throws ConnectionCanceledException { if(!foundObjects.isEmpty()) { list.addAll(foundObjects); listener.chunk(workdir, list); } }
@Override public void message(final String message) { proxy.message(message); } }
@Override public void chunk(final Path folder, final AttributedList<Path> list) throws ConnectionCanceledException { super.chunk(folder, list); listener.chunk(folder, list); }
@Override public void message(final String message) { for(ListProgressListener listener : proxy) { listener.message(message); } }
@Override public void chunk(final Path parent, final AttributedList<Path> list) throws ConnectionCanceledException { delegate.chunk(parent, list.filter(filter)); }
@Override public void message(final String message) { listener.message(message); }
@Override public void chunk(final Path parent, final AttributedList<Path> list) throws ConnectionCanceledException { if(log.isInfoEnabled()) { log.info(String.format("Retrieved chunk of %d items in %s", list.size(), directory)); } if(worker.isCanceled()) { throw new ConnectionCanceledException(); } proxy.chunk(directory, list); }
protected Path list(final Session<?> session) throws BackgroundException { Path home; AttributedList<Path> list; try { home = session.getFeature(Home.class).find(); // Remove cached home to force error if repeated attempt to mount fails cache.invalidate(home); // Retrieve directory listing of default path final SessionListWorker worker = new SessionListWorker(cache, home, listener); listener.message(worker.getActivity()); list = worker.run(session); } catch(NotfoundException e) { log.warn(String.format("Mount failed with %s", e.getMessage())); // The default path does not exist or is not readable due to possible permission issues. Fallback // to default working directory home = new Path(String.valueOf(Path.DELIMITER), EnumSet.of(Path.Type.volume, Path.Type.directory)); // Remove cached home to force error if repeated attempt to mount fails cache.invalidate(home); // Retrieve directory listing of working directory final SessionListWorker worker = new SessionListWorker(cache, home, listener); listener.message(worker.getActivity()); list = worker.run(session); } cache.put(home, list); return home; }
private void parse(final Path directory, final ListProgressListener listener, final AttributedList<Path> children, final ListFolderResult result) throws ConnectionCanceledException { for(Metadata md : result.getEntries()) { final Path child = this.parse(directory, md); if(child == null) { continue; } children.add(child); listener.chunk(directory, children); } }
if(this.post(path, file)) { paths.add(file); listener.chunk(directory, paths);
protected final AttributedList<Path> iterate(final Iterator<OneDriveDrive.Metadata> iterator, final Path directory, final ListProgressListener listener) throws BackgroundException { final AttributedList<Path> children = new AttributedList<>(); while(iterator.hasNext()) { final OneDriveDrive.Metadata metadata; try { metadata = iterator.next(); } catch(OneDriveRuntimeException e) { log.warn(e.getMessage()); continue; } final PathAttributes attributes = new PathAttributes(); attributes.setVersionId(metadata.getId()); attributes.setSize(metadata.getTotal()); String name = metadata.getName(); if(StringUtils.isBlank(metadata.getName())) { name = metadata.getId(); } children.add(new Path(directory, name, EnumSet.of(Path.Type.directory, Path.Type.volume), attributes)); listener.chunk(directory, children); } return children; }
@Override public AttributedList<Path> run(final Session<?> session) throws BackgroundException { try { if(this.isCached()) { final AttributedList<Path> list = cache.get(directory); listener.chunk(directory, list); return list; } final ListService service = session.getFeature(ListService.class).withCache(cache); return service.list(directory, listener); } catch(ListCanceledException e) { return e.getChunk(); } }
listener.chunk(directory, list); return list;
@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; }