default boolean isEmpty(){ return size()==0; }
@Override public void forEachRemaining(Consumer<? super R> action) { source.forEachRemaining(t->{ collection = (C)collection.plus(t); if(!predicate.test(collection,t)) { if (collection.size() > 0) { action.accept(finalizer.apply(collection)); collection = factory.get(); } } }); if(collection.size()>0){ action.accept(finalizer.apply(collection)); } }
@Override public void forEachRemaining(Consumer<? super R> action) { start = System.nanoTime(); source.forEachRemaining(t->{ collection = (C)collection.plus(t); if(collection.size()==groupSize || System.nanoTime() - start >= toRun){ start = System.nanoTime(); action.accept(finalizer.apply(collection)); collection = factory.get(); } }); if(collection.size()>0){ action.accept(finalizer.apply(collection)); } } long start = -1;
@Override public void forEachRemaining(Consumer<? super R> action) { source.forEachRemaining(t->{ collection = (C)collection.plus(t); if(!predicate.test(t)){ action.accept(finalizer.apply(collection)); collection = factory.get(); }else{ } }); if(collection.size()>0){ action.accept(finalizer.apply(collection)); } }
@Override public boolean tryAdvance(Consumer<? super R> action) { if(closed) return false; for(int i=collection.size();collection.size()<groupSize;i++) { boolean canAdvance = source.tryAdvance(t -> { collection = (C)collection.plus(t); }); if (!canAdvance) { if(collection.size()>0) { action.accept(finalizer.apply(collection)); collection = factory.get(); } closed = true; return false; } } if(collection.size()>0) { action.accept(finalizer.apply(collection)); collection = factory.get(); } return true; }
@Override public boolean tryAdvance(Consumer<? super R> action) { if(closed) return false; if(start ==-1 ) start = System.nanoTime(); while (System.nanoTime() - start < toRun && collection.size() < groupSize) { boolean canAdvance = source.tryAdvance(t -> { collection = (C)collection.plus(t); }); if (!canAdvance) { if(collection.size()>0) { action.accept(finalizer.apply(collection)); start = System.nanoTime(); collection = factory.get(); } closed = true; return false; } } if(collection.size()>0) { action.accept(finalizer.apply(collection)); collection = factory.get(); } start = System.nanoTime(); return true; }
@Override public void forEachRemaining(Consumer<? super R> action) { source.forEachRemaining(t->{ if(data==false) data = true; collection = (C)collection.plus(t); if(collection.size()==groupSize){ action.accept(finalizer.apply(collection)); sent = true; collection = factory.get(); }else{ sent = false; } }); if(data && !sent){ action.accept(finalizer.apply(collection)); } }
@Override public boolean tryAdvance(Consumer<? super R> action) { if(closed) return false; boolean accepted[]= {true}; while (accepted[0]) { boolean canAdvance = source.tryAdvance(t -> { collection = (C)collection.plus(t); accepted[0]= predicate.test(t); }); if (!canAdvance) { if(collection.size()>0){ action.accept(finalizer.apply(collection)); collection = factory.get(); } closed = true; return false; } } if(collection.size()>0){ action.accept(finalizer.apply(collection)); collection = factory.get(); } return true; }
@Override public boolean tryAdvance(Consumer<? super R> action) { if(closed) return false; boolean accepted[]= {true}; while (accepted[0]) { boolean canAdvance = source.tryAdvance(t -> { collection = (C)collection.plus(t); accepted[0]= predicate.test(collection,t); }); if (!canAdvance) { if(collection.size()>0) { action.accept(finalizer.apply(collection)); collection = factory.get(); } closed = true; return false; } } if(collection.size()>0) { action.accept(finalizer.apply(collection)); collection = factory.get(); } return true; }
@Override public void subscribeAll(Consumer<? super R> onNext, Consumer<? super Throwable> onError, Runnable onCompleteDs) { PersistentCollection[] next = {factory.get()}; source.subscribeAll(e-> { try { next[0]=next[0].plus(e); if(next[0].size()==groupSize){ onNext.accept(finalizer.apply((C)next[0])); next[0] = factory.get(); } } catch (Throwable t) { onError.accept(t); } } ,onError,()->{ if(next[0].size()>0) { try { onNext.accept(finalizer.apply((C) next[0])); } catch(Throwable t){ onError.accept(t); } } onCompleteDs.run(); }); } }
@Override public void subscribeAll(Consumer<? super R> onNext, Consumer<? super Throwable> onError, Runnable onCompleteDs) { PersistentCollection[] next = {factory.get()}; source.subscribeAll(e-> { try { next[0]=next[0].plus(e); if(predicate.test((C)next[0],e)){ onNext.accept(finalizer.apply((C)next[0])); next[0] = factory.get(); } } catch (Throwable t) { onError.accept(t); } } ,onError,()->{ if(next[0].size()>0) { try { onNext.accept(finalizer.apply((C) next[0])); } catch(Throwable t){ onError.accept(t); } } onCompleteDs.run(); }); } }
@Override public void subscribeAll(Consumer<? super R> onNext, Consumer<? super Throwable> onError, Runnable onCompleteDs) { PersistentCollection[] next = {factory.get()}; source.subscribeAll(e-> { try { next[0]=next[0].plus(e); if(!predicate.test(e)){ onNext.accept(finalizer.apply((C)next[0])); next[0] = factory.get(); } } catch (Throwable t) { onError.accept(t); } } ,onError,()->{ if(next[0].size()>0) { try { onNext.accept(finalizer.apply((C) next[0])); } catch(Throwable t){ onError.accept(t); } } onCompleteDs.run(); }); } }
if(next[0].size()>0) { try { onNext.accept(finalizer.apply((C) next[0]));
},()->{ if(next[0].size()>0) { try { onNext.accept(finalizer.apply((C) next[0]));
upstream[0].request(1); },()->{ if(next[0].size()>0) { try { onNext.accept(finalizer.apply((C) next[0]));
upstream[0].request(1); },()->{ if(next[0].size()>0) { try { onNext.accept(finalizer.apply((C) next[0]));
default boolean isEmpty(){ return size()==0; }