Package org.reactfx
Class ThenAccumulateForStream<T,A>
- java.lang.Object
-
- org.reactfx.ObservableBase<java.util.function.Consumer<? super T>,T>
-
- org.reactfx.EventStreamBase<T>
-
- org.reactfx.ThenAccumulateForStream<T,A>
-
- All Implemented Interfaces:
AwaitingEventStream<T>
,EventStream<T>
,Observable<java.util.function.Consumer<? super T>>
,ProperEventStream<T>
,ProperObservable<java.util.function.Consumer<? super T>,T>
class ThenAccumulateForStream<T,A> extends EventStreamBase<T> implements AwaitingEventStream<T>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
ThenAccumulateForStream.State
-
Field Summary
Fields Modifier and Type Field Description private A
acc
private java.util.function.Function<? super A,java.util.List<T>>
deconstruction
private java.util.function.Function<? super T,? extends A>
initial
private EventStream<T>
input
private javafx.beans.binding.BooleanBinding
pending
private java.util.function.BiFunction<? super A,? super T,? extends A>
reduction
private ThenAccumulateForStream.State
state
private Timer
timer
-
Constructor Summary
Constructors Constructor Description ThenAccumulateForStream(EventStream<T> input, java.util.function.Function<? super T,? extends A> initial, java.util.function.BiFunction<? super A,? super T,? extends A> reduction, java.util.function.Function<? super A,java.util.List<T>> deconstruction, java.util.function.Function<java.lang.Runnable,Timer> timerFactory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
handleEvent(T t)
private void
handleTimeout()
private void
invalidatePending()
boolean
isPending()
protected Subscription
observeInputs()
Starts observing this observable's input(s), if any.javafx.beans.value.ObservableBooleanValue
pendingProperty()
Indicates whether there is a pending event that will be emitted by this stream in the (near) future.private void
setState(ThenAccumulateForStream.State state)
-
Methods inherited from class org.reactfx.ObservableBase
addObserver, enqueueNotifications, equals, forEachObserver, getObserverCount, hashCode, isObservingInputs, newObserver, notifyObservers, notifyObservers, observe, removeObserver, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.reactfx.EventStream
accumulate, accumulate, accumulate, accumulateBetween, accumulateBetween, accumulateUntilLater, accumulateUntilLater, accumulateUntilLater, accumulateUntilLater, accumulateWhen, accumulateWhen, accumulative, accumulative, cast, conditionOn, conditionOnShowing, distinct, emitBothOnEach, emitOn, emitOnEach, feedTo, feedTo, filter, filter, filterMap, filterMap, flatMap, forgetful, fork, guardedBy, hook, latestN, map, mapToCompletionStage, mapToTask, onRecurseAccumulate, onRecurseAccumulate, onRecurseQueue, onRecurseReduce, onRecurseRetainLatest, or, pausable, pauseWhen, pin, queueBetween, queueUntilLater, queueUntilLater, reduceBetween, reduceSuccessions, reduceSuccessions, reduceSuccessions, reduceSuccessions, reduceSuccessions, reduceSuccessions, reduceUntilLater, reduceUntilLater, reduceWhen, reducible, repeatOn, retainLatestBetween, retainLatestUntilLater, retainLatestUntilLater, retainLatestWhen, splitBy, subscribe, subscribeFor, subscribeForOne, successionEnds, successionEnds, supply, supply, supplyCompletionStage, supplyTask, suppressible, suppressWhen, suspenderOf, thenAccumulateFor, thenAccumulateFor, thenAccumulateFor, thenAccumulateFor, thenIgnoreFor, thenIgnoreFor, thenReduceFor, thenReduceFor, thenRetainLatestFor, thenRetainLatestFor, threadBridge, threadBridgeFromFx, threadBridgeToFx, toBinding, withDefaultEvent
-
Methods inherited from interface org.reactfx.Observable
addObserver, observe, removeObserver
-
Methods inherited from interface org.reactfx.ProperEventStream
defaultNotificationAccumulator, emit
-
Methods inherited from interface org.reactfx.ProperObservable
defaultEquals, defaultHashCode, defaultToString, notifyObservers
-
-
-
-
Field Detail
-
input
private final EventStream<T> input
-
deconstruction
private final java.util.function.Function<? super A,java.util.List<T>> deconstruction
-
timer
private final Timer timer
-
state
private ThenAccumulateForStream.State state
-
acc
private A acc
-
pending
private javafx.beans.binding.BooleanBinding pending
-
-
Constructor Detail
-
ThenAccumulateForStream
public ThenAccumulateForStream(EventStream<T> input, java.util.function.Function<? super T,? extends A> initial, java.util.function.BiFunction<? super A,? super T,? extends A> reduction, java.util.function.Function<? super A,java.util.List<T>> deconstruction, java.util.function.Function<java.lang.Runnable,Timer> timerFactory)
-
-
Method Detail
-
pendingProperty
public javafx.beans.value.ObservableBooleanValue pendingProperty()
Description copied from interface:AwaitingEventStream
Indicates whether there is a pending event that will be emitted by this stream in the (near) future. This may mean that an event has occurred that causes this stream to emit an event with some delay, e.g. waiting for a timer or completion of an asynchronous task.- Specified by:
pendingProperty
in interfaceAwaitingEventStream<T>
-
isPending
public boolean isPending()
- Specified by:
isPending
in interfaceAwaitingEventStream<T>
-
observeInputs
protected final Subscription observeInputs()
Description copied from class:ObservableBase
Starts observing this observable's input(s), if any. This method is called when the number of observers goes from 0 to 1. This method is called beforeObservableBase.newObserver(Object)
is called for the first observer.- Specified by:
observeInputs
in classObservableBase<java.util.function.Consumer<? super T>,T>
- Returns:
- subscription used to stop observing inputs. The subscription is unsubscribed (i.e. input observation stops) when the number of observers goes down to 0.
-
handleEvent
private void handleEvent(T t)
-
handleTimeout
private void handleTimeout()
-
setState
private void setState(ThenAccumulateForStream.State state)
-
invalidatePending
private void invalidatePending()
-
-