private Rectangle calculateMaxView(RTree<T, S> tree) { return tree.entries().reduce(Optional.<Rectangle>absent(), new Func2<Optional<Rectangle>, Entry<T, S>, Optional<Rectangle>>() { @Override public Optional<Rectangle> call(Optional<Rectangle> r, Entry<T, S> entry) { if (r.isPresent()) return of(r.get().add(entry.geometry().mbr())); else return of(entry.geometry().mbr()); } }).toBlocking().single().or(rectangle(0, 0, 0, 0)); }
private Rectangle calculateMaxView(RTree<T, S> tree) { return tree.entries().reduce(Optional.<Rectangle>absent(), new Func2<Optional<Rectangle>, Entry<T, S>, Optional<Rectangle>>() { @Override public Optional<Rectangle> call(Optional<Rectangle> r, Entry<T, S> entry) { if (r.isPresent()) return of(r.get().add(entry.geometry().mbr())); else return of(entry.geometry().mbr()); } }).toBlocking().single().or(rectangle(0, 0, 0, 0)); }
@Override public Observable<WatchEvent<?>> call(WatchService watchService) { if (!scheduler.isPresent()) { if (!pollDuration.isPresent() || pollDuration.get() == 0) { scheduler = Optional.of(rx.schedulers.Schedulers.computation()); } else { // poll will block so don't do on // computation() scheduler = Optional.of(rx.schedulers.Schedulers.io()); } } return from(watchService, scheduler.get(), pollDuration.or(Long.MAX_VALUE), pollDurationUnit, pollInterval, pollIntervalUnit, backpressureStrategy); } });