- java.lang.Object
-
- swim.streamlet.AbstractStreamlet<I,O>
-
- All Implemented Interfaces:
GenericStreamlet<I,O>,Streamlet<I,O>,StreamletScope<O>
public abstract class AbstractStreamlet<I,O> extends Object implements GenericStreamlet<I,O>
-
-
Field Summary
Fields Modifier and Type Field Description protected StreamletContextcontextprotected StreamletScope<? extends O>scopeprotected intversion
-
Constructor Summary
Constructors Constructor Description AbstractStreamlet()AbstractStreamlet(StreamletScope<? extends O> scope)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbindInput(String key, Outlet<? extends I> input)Connects theInletof thisStreamlet, identified by the givenkey, to theinputfrom which theInletshould acquire its state.voiddecohere()Marks thisStreamlet—and all of its outlets—as having inconsistent state.static <I,O>
voiddecohereOutlets(Streamlet<I,O> streamlet, Class<?> streamletClass)protected voiddidDecohere()voiddidDecohereInlet(Inlet<? extends I> inlet)voiddidDecohereOutlet(Outlet<? super O> outlet)protected voiddidRecohere(int version)voiddidRecohereInlet(Inlet<? extends I> inlet, int version)voiddidRecohereOutlet(Outlet<? super O> outlet, int version)voiddisconnectInputs()Disconnects allInlets dominated by thisStreamletin the dataflow dependency graph.static <I,O>
voiddisconnectInputs(Streamlet<I,O> streamlet, Class<?> streamletClass)voiddisconnectOutputs()Disconnects allInletss dominated by thisStreamletin the dataflow graph.static <I,O>
voiddisconnectOutputs(Streamlet<I,O> streamlet, Class<?> streamletClass)<I2 extends I>
I2getInput(String key)<I2 extends I>
I2getInput(String key, I2 orElse)<I2 extends I>
I2getInput(Inlet<I2> inlet)<I2 extends I>
I2getInput(Inlet<I2> inlet, I2 orElse)OgetOutput(String key)OgetOutput(Outlet<? super O> outlet)protected <I2 extends I>
Inlet<I2>inlet()Inlet<I>inlet(String key)Returns theInletto thisStreamletidentified by the givenkey; returnsnullif thisStreamlethas no suchInlet.protected <I2 extends I,O2>
Inoutlet<I2,O2>inoutlet()protected voidonDecohere()protected voidonDecohereOutlets()protected voidonRecohere(int version)protected voidonRecohereInlets(int version)protected voidonRecohereOutlets(int version)protected <O2> Outlet<O2>outlet()Outlet<O>outlet(String key)Returns theOutletof thisStreamletidentified by the givenkey; returnsnullif thisStreamlethas no suchOutlet.voidrecohere(int version)Updates the state of thisStreamletto make it consistent with the targetversion.static <I,O>
voidrecohereInlets(int version, Streamlet<I,O> streamlet, Class<?> streamletClass)static <I,O>
voidrecohereOutlets(int version, Streamlet<I,O> streamlet, Class<?> streamletClass)static <I,O>
intreflectInletCount(Class<?> streamletClass)static <I,O>
Inlet<I>reflectInletField(Streamlet<I,O> streamlet, Field field)static <I,O>
Map.Entry<String,Inlet<I>>reflectInletIndex(int index, Streamlet<I,O> streamlet, Class<?> streamletClass)static <I,O>
Inlet<I>reflectInletKey(String key, Streamlet<I,O> streamlet, Class<?> streamletClass)static <I,O>
Inoutlet<I,O>reflectInoutletField(Streamlet<I,O> streamlet, Field field)static <I,O>
intreflectOutletCount(Class<?> streamletClass)static <I,O>
Outlet<O>reflectOutletField(Streamlet<I,O> streamlet, Field field)static <I,O>
Map.Entry<String,Outlet<O>>reflectOutletIndex(int index, Streamlet<I,O> streamlet, Class<?> streamletClass)static <I,O>
Outlet<O>reflectOutletKey(String key, Streamlet<I,O> streamlet, Class<?> streamletClass)voidsetStreamletContext(StreamletContext context)Sets the environment in which thisStreamletoperates.voidsetStreamletScope(StreamletScope<? extends O> scope)Sets the lexically scoped parent of thisStreamlet.StreamletContextstreamletContext()Returns the environment in which thisStreamletoperates.StreamletScope<? extends O>streamletScope()Returns the lexically scoped parent of thisStreamlet.voidunbindInput(String key)Disconnects theInletof thisStreamlet, identified by the givenkey, from itsinputOutlet, if connected.protected voidwillDecohere()voidwillDecohereInlet(Inlet<? extends I> inlet)voidwillDecohereOutlet(Outlet<? super O> outlet)protected voidwillRecohere(int version)voidwillRecohereInlet(Inlet<? extends I> inlet, int version)voidwillRecohereOutlet(Outlet<? super O> outlet, int version)
-
-
-
Field Detail
-
scope
protected StreamletScope<? extends O> scope
-
context
protected StreamletContext context
-
version
protected int version
-
-
Constructor Detail
-
AbstractStreamlet
public AbstractStreamlet(StreamletScope<? extends O> scope)
-
AbstractStreamlet
public AbstractStreamlet()
-
-
Method Detail
-
streamletScope
public StreamletScope<? extends O> streamletScope()
Description copied from interface:StreamletReturns the lexically scoped parent of thisStreamlet. Returnsnullif thisStreamlethas no lexical parent.- Specified by:
streamletScopein interfaceStreamlet<I,O>- Specified by:
streamletScopein interfaceStreamletScope<I>
-
setStreamletScope
public void setStreamletScope(StreamletScope<? extends O> scope)
Description copied from interface:StreamletSets the lexically scoped parent of thisStreamlet.- Specified by:
setStreamletScopein interfaceStreamlet<I,O>
-
streamletContext
public StreamletContext streamletContext()
Description copied from interface:StreamletReturns the environment in which thisStreamletoperates.- Specified by:
streamletContextin interfaceStreamlet<I,O>- Specified by:
streamletContextin interfaceStreamletScope<I>
-
setStreamletContext
public void setStreamletContext(StreamletContext context)
Description copied from interface:StreamletSets the environment in which thisStreamletoperates.- Specified by:
setStreamletContextin interfaceStreamlet<I,O>
-
inlet
public Inlet<I> inlet(String key)
Description copied from interface:StreamletReturns theInletto thisStreamletidentified by the givenkey; returnsnullif thisStreamlethas no suchInlet.
-
bindInput
public void bindInput(String key, Outlet<? extends I> input)
Description copied from interface:StreamletConnects theInletof thisStreamlet, identified by the givenkey, to theinputfrom which theInletshould acquire its state. Delegates toInlet.bindInput(Outlet)on the identifiedInlet.
-
unbindInput
public void unbindInput(String key)
Description copied from interface:StreamletDisconnects theInletof thisStreamlet, identified by the givenkey, from itsinputOutlet, if connected. Delegates toInlet.unbindInput()on the identifiedInlet.- Specified by:
unbindInputin interfaceStreamlet<I,O>
-
outlet
public Outlet<O> outlet(String key)
Description copied from interface:StreamletReturns theOutletof thisStreamletidentified by the givenkey; returnsnullif thisStreamlethas no suchOutlet.
-
outlet
protected <O2> Outlet<O2> outlet()
-
decohere
public void decohere()
Description copied from interface:StreamletMarks thisStreamlet—and all of its outlets—as having inconsistent state. Decohering aStreamletwill recursively decohere all streamlets that transitively depend on the state of thisStreamlet. Decohering aStreamletdoes not cause its state to be recomputed. A subsequentStreamlet.recohere(int)call will eventually make the state of theStreamletcoherent again.
-
recohere
public void recohere(int version)
Description copied from interface:StreamletUpdates the state of thisStreamletto make it consistent with the targetversion. TheStreamletonly needs to update if its currentversiondiffers from the targetversion. To update its state, theStreamletfirst invokesInlet.recohereOutput(int)on each of its inlets, to ensure that its input states are coherent. It then recomputes its own state in an implementation defined manner. Finally, it invokesOutlet.recohereInput(int)on its outlets, causing all transitively dependent streamlets to make their own states coherent again.
-
getOutput
public O getOutput(Outlet<? super O> outlet)
- Specified by:
getOutputin interfaceGenericStreamlet<I,O>
-
disconnectInputs
public void disconnectInputs()
Description copied from interface:StreamletDisconnects allInlets dominated by thisStreamletin the dataflow dependency graph. Used to recursively clean up chains of combinators terminating at thisStreamlet.- Specified by:
disconnectInputsin interfaceStreamlet<I,O>
-
disconnectOutputs
public void disconnectOutputs()
Description copied from interface:StreamletDisconnects allInletss dominated by thisStreamletin the dataflow graph. Used to recursively clean up chains of combinators originating from thisStreamlet.- Specified by:
disconnectOutputsin interfaceStreamlet<I,O>
-
willDecohereInlet
public void willDecohereInlet(Inlet<? extends I> inlet)
- Specified by:
willDecohereInletin interfaceGenericStreamlet<I,O>
-
didDecohereInlet
public void didDecohereInlet(Inlet<? extends I> inlet)
- Specified by:
didDecohereInletin interfaceGenericStreamlet<I,O>
-
willRecohereInlet
public void willRecohereInlet(Inlet<? extends I> inlet, int version)
- Specified by:
willRecohereInletin interfaceGenericStreamlet<I,O>
-
didRecohereInlet
public void didRecohereInlet(Inlet<? extends I> inlet, int version)
- Specified by:
didRecohereInletin interfaceGenericStreamlet<I,O>
-
willDecohereOutlet
public void willDecohereOutlet(Outlet<? super O> outlet)
- Specified by:
willDecohereOutletin interfaceGenericStreamlet<I,O>
-
didDecohereOutlet
public void didDecohereOutlet(Outlet<? super O> outlet)
- Specified by:
didDecohereOutletin interfaceGenericStreamlet<I,O>
-
willRecohereOutlet
public void willRecohereOutlet(Outlet<? super O> outlet, int version)
- Specified by:
willRecohereOutletin interfaceGenericStreamlet<I,O>
-
didRecohereOutlet
public void didRecohereOutlet(Outlet<? super O> outlet, int version)
- Specified by:
didRecohereOutletin interfaceGenericStreamlet<I,O>
-
willDecohere
protected void willDecohere()
-
onDecohere
protected void onDecohere()
-
onDecohereOutlets
protected void onDecohereOutlets()
-
didDecohere
protected void didDecohere()
-
willRecohere
protected void willRecohere(int version)
-
onRecohereInlets
protected void onRecohereInlets(int version)
-
onRecohere
protected void onRecohere(int version)
-
onRecohereOutlets
protected void onRecohereOutlets(int version)
-
didRecohere
protected void didRecohere(int version)
-
disconnectInputs
public static <I,O> void disconnectInputs(Streamlet<I,O> streamlet, Class<?> streamletClass)
-
disconnectOutputs
public static <I,O> void disconnectOutputs(Streamlet<I,O> streamlet, Class<?> streamletClass)
-
decohereOutlets
public static <I,O> void decohereOutlets(Streamlet<I,O> streamlet, Class<?> streamletClass)
-
recohereInlets
public static <I,O> void recohereInlets(int version, Streamlet<I,O> streamlet, Class<?> streamletClass)
-
recohereOutlets
public static <I,O> void recohereOutlets(int version, Streamlet<I,O> streamlet, Class<?> streamletClass)
-
reflectInletCount
public static <I,O> int reflectInletCount(Class<?> streamletClass)
-
reflectOutletCount
public static <I,O> int reflectOutletCount(Class<?> streamletClass)
-
reflectInletIndex
public static <I,O> Map.Entry<String,Inlet<I>> reflectInletIndex(int index, Streamlet<I,O> streamlet, Class<?> streamletClass)
-
reflectOutletIndex
public static <I,O> Map.Entry<String,Outlet<O>> reflectOutletIndex(int index, Streamlet<I,O> streamlet, Class<?> streamletClass)
-
reflectInletKey
public static <I,O> Inlet<I> reflectInletKey(String key, Streamlet<I,O> streamlet, Class<?> streamletClass)
-
reflectOutletKey
public static <I,O> Outlet<O> reflectOutletKey(String key, Streamlet<I,O> streamlet, Class<?> streamletClass)
-
reflectInletField
public static <I,O> Inlet<I> reflectInletField(Streamlet<I,O> streamlet, Field field)
-
reflectOutletField
public static <I,O> Outlet<O> reflectOutletField(Streamlet<I,O> streamlet, Field field)
-
-