Module swim.dataflow
Package swim.dataflow
Class AbstractRecordStreamlet<I extends Value,O extends Value>
- java.lang.Object
-
- swim.structure.Item
-
- swim.structure.Value
-
- swim.structure.Record
-
- swim.dataflow.RecordStreamlet<I,O>
-
- swim.dataflow.AbstractRecordStreamlet<I,O>
-
- All Implemented Interfaces:
Comparable<Item>,Iterable<Item>,Collection<Item>,List<Item>,Debug,Display,GenericStreamlet<I,O>,Streamlet<I,O>,StreamletScope<O>,Builder<Item,Record>,PairBuilder<Value,Value,Record>
- Direct Known Subclasses:
DownlinkStreamlet
public abstract class AbstractRecordStreamlet<I extends Value,O extends Value> extends RecordStreamlet<I,O> implements GenericStreamlet<I,O>
-
-
Field Summary
Fields Modifier and Type Field Description protected StreamletContextcontextprotected StreamletScope<? extends O>scopeprotected intversion
-
Constructor Summary
Constructors Constructor Description AbstractRecordStreamlet()AbstractRecordStreamlet(StreamletScope<? extends O> scope)
-
Method Summary
Modifier and Type Method Description voidadd(int index, Item item)booleanadd(Item item)Adds a single input value to this builder, returningtrueif the state of the builder changed.voidbindInput(String key, Outlet<? extends I> input)Connects theInletof thisStreamlet, identified by the givenkey, to theinputfrom which theInletshould acquire its state.<T> TcastInput(String key, Form<T> form)<T> TcastInput(String key, Form<T> form, T orElse)<T> TcastInput(Inlet<? extends I> inlet, Form<T> form)<T> TcastInput(Inlet<? extends I> inlet, Form<T> form, T orElse)voidclear()<T> TcoerceInput(String key, Form<T> form)<T> TcoerceInput(String key, Form<T> form, T orElse)<T> TcoerceInput(Inlet<? extends I> inlet, Form<T> form)<T> TcoerceInput(Inlet<? extends I> inlet, Form<T> form, T orElse)static <I extends Value,O extends Value>
voidcompileInlets(Class<?> streamletClass, RecordStreamlet<I,O> streamlet)booleancontainsKey(String key)Returnstrueif thisRecordhas aFieldmember with a key that is equal to the givenkey; otherwise returnsfalseif thisRecordhas noFieldmember with a key equal to the givenkey.booleancontainsKey(Value key)Returnstrueif thisRecordhas aFieldmember with a key that is equal to the givenkey; otherwise returnsfalseif thisRecordhas noFieldmember with a key equal to the givenkey.protected voiddidInvalidate()voiddidInvalidateInlet(Inlet<? extends I> inlet)voiddidInvalidateOutlet(Outlet<? super O> outlet)protected voiddidReconcile(int version)voiddidReconcileInlet(Inlet<? extends I> inlet, int version)voiddidReconcileOutlet(Outlet<? super O> outlet, int version)voiddisconnectInputs()Disconnects allInlets dominated by thisStreamletin the dataflow dependency graph.voiddisconnectOutputs()Disconnects allInletss dominated by thisStreamletin the dataflow graph.Itemget(int index)Returns the member of thisRecordat the givenindex, if theindexis greater than or equal to zero, and less than thelengthof thisRecord.Valueget(String key)Valueget(Value key)ValuegetAttr(String key)ValuegetAttr(Text key)FieldgetField(String key)Returns the lastFieldmember of thisRecordwhose key is equal to the givenkey; returnsnullif thisRecordhas noFieldmember with akeyequal to the givenkey.FieldgetField(Value key)Returns the lastFieldmember of thisRecordwhose key is equal to the givenkey; returnsnullif thisRecordhas noFieldmember with akeyequal to the givenkey.<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)ItemgetItem(int index)OgetOutput(String key)OgetOutput(Outlet<? super O> outlet)ValuegetSlot(String key)ValuegetSlot(Value key)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()voidinvalidate()Marks thisStreamlet—and all of its outlets—as having stale state.booleanisEmpty()Returnstrueif thisRecordhas no members.protected voidonInvalidate()protected voidonInvalidateOutlets()protected voidonReconcile(int version)protected voidonReconcileInlets(int version)protected voidonReconcileOutlets(int version)protected <O2 extends Value>
Outlet<O2>outlet()Outlet<O>outlet(String key)Returns theOutletof thisStreamletidentified by the givenkey; returnsnullif thisStreamlethas no suchOutlet.Valueput(String key, Value newValue)Valueput(Value key, Value newValue)ValueputAttr(String key, Value newValue)ValueputAttr(Text key, Value newValue)ValueputSlot(String key, Value newValue)ValueputSlot(Value key, Value newValue)voidreconcile(int version)Reconciles the state of thisStreamlet, if the version of thisStreamlet's state differs from the targetversion.Itemremove(int index)booleanremoveKey(String key)booleanremoveKey(Value key)ItemsetItem(int index, Item item)Replaces the member of thisRecordat the givenindexwith a newitem, returning the previousItemat the givenindex, if theindexis greater than or equal to zero, and less than thelengthof thisRecord.voidsetStreamletContext(StreamletContext context)Sets the environment in which thisStreamletoperates.voidsetStreamletScope(StreamletScope<? extends O> scope)Sets the lexically scoped parent of thisStreamlet.intsize()Returns the number of members contained in thisRecord.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 voidwillInvalidate()voidwillInvalidateInlet(Inlet<? extends I> inlet)voidwillInvalidateOutlet(Outlet<? super O> outlet)protected voidwillReconcile(int version)voidwillReconcileInlet(Inlet<? extends I> inlet, int version)voidwillReconcileOutlet(Outlet<? super O> outlet, int version)-
Methods inherited from class swim.dataflow.RecordStreamlet
compile, compileInlet, isConstant
-
Methods inherited from class swim.structure.Record
add, add, add, add, add, add, add, add, add, add, add, add, add, addAll, addAll, alias, appended, appended, attr, attr, attr, attr, attr, attr, attr, attr, attr, attr, attr, attr, attr, attr, attr, attr, bind, body, branch, commit, compareTo, compareTo, concat, contains, contains, containsAll, containsValue, create, create, debug, empty, entrySet, equals, evaluate, fieldCount, fieldIterator, fieldSet, flattened, hashCode, head, header, headers, indexOf, isAliased, isArray, isMutable, isObject, item, item, item, item, item, item, item, iterator, keyIterator, keySet, lastIndexOf, length, listIterator, listIterator, of, of, of, prepended, prepended, put, put, put, put, put, put, put, put, put, put, put, put, putAll, putAttr, putAttr, putAttr, putAttr, putAttr, putAttr, putAttr, putAttr, putAttr, putAttr, putAttr, putAttr, putSlot, putSlot, putSlot, putSlot, putSlot, putSlot, putSlot, putSlot, putSlot, putSlot, putSlot, putSlot, remove, removeAll, removed, removed, retainAll, set, setItem, setItem, setItem, setItem, setItem, setItem, slot, slot, slot, slot, slot, slot, slot, slot, slot, slot, slot, slot, slot, slot, slot, slot, stringValue, stringValue, subList, substitute, tag, tail, target, toArray, toArray, typeOrder, unflattened, updated, updated, updatedAttr, updatedAttr, updatedSlot, updatedSlot, valueCount, valueIterator, values
-
Methods inherited from class swim.structure.Value
absent, and, and, bitwiseAnd, bitwiseAnd, bitwiseNot, bitwiseOr, bitwiseOr, bitwiseXor, bitwiseXor, booleanValue, booleanValue, builder, byteValue, byteValue, charValue, charValue, conditional, conditional, divide, divide, doubleValue, doubleValue, eq, eq, extant, floatValue, floatValue, fromObject, ge, ge, gt, gt, integerValue, integerValue, intValue, intValue, inverse, isDefined, isDistinct, key, keyEquals, lambda, le, le, longValue, longValue, lt, lt, minus, minus, modulo, modulo, ne, ne, negative, not, numberValue, numberValue, or, or, plus, plus, positive, shortValue, shortValue, times, times, toValue
-
Methods inherited from class swim.structure.Item
appended, appended, appended, appended, appended, appended, cast, cast, coerce, coerce, display, evaluate, filter, filter, globalScope, invoke, max, min, precedence, prepended, prepended, prepended, prepended, prepended, prepended, substitute, toString, updated, updated, updated, updated, updated, updated, updated, updated, updated, updated, updated, updated, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
-
Methods inherited from interface java.util.List
replaceAll, sort, spliterator
-
-
-
-
Field Detail
-
scope
protected StreamletScope<? extends O extends Value> scope
-
context
protected StreamletContext context
-
version
protected int version
-
-
Constructor Detail
-
AbstractRecordStreamlet
public AbstractRecordStreamlet(StreamletScope<? extends O> scope)
-
AbstractRecordStreamlet
public AbstractRecordStreamlet()
-
-
Method Detail
-
compileInlets
public static <I extends Value,O extends Value> void compileInlets(Class<?> streamletClass, RecordStreamlet<I,O> streamlet)
-
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 extends Value,O extends Value>- Specified by:
streamletScopein interfaceStreamletScope<I extends Value>
-
setStreamletScope
public void setStreamletScope(StreamletScope<? extends O> scope)
Description copied from interface:StreamletSets the lexically scoped parent of thisStreamlet.
-
streamletContext
public StreamletContext streamletContext()
Description copied from interface:StreamletReturns the environment in which thisStreamletoperates.- Specified by:
streamletContextin interfaceStreamlet<I extends Value,O extends Value>- Specified by:
streamletContextin interfaceStreamletScope<I extends Value>
-
setStreamletContext
public void setStreamletContext(StreamletContext context)
Description copied from interface:StreamletSets the environment in which thisStreamletoperates.
-
isEmpty
public boolean isEmpty()
Description copied from class:RecordReturnstrueif thisRecordhas no members.
-
size
public int size()
Description copied from class:RecordReturns the number of members contained in thisRecord.
-
containsKey
public boolean containsKey(Value key)
Description copied from class:RecordReturnstrueif thisRecordhas aFieldmember with a key that is equal to the givenkey; otherwise returnsfalseif thisRecordhas noFieldmember with a key equal to the givenkey.- Overrides:
containsKeyin classRecord
-
containsKey
public boolean containsKey(String key)
Description copied from class:RecordReturnstrueif thisRecordhas aFieldmember with a key that is equal to the givenkey; otherwise returnsfalseif thisRecordhas noFieldmember with a key equal to the givenkey. Equivalent toRecord.containsKey(Value), but avoids boxing thekeystring into aTextvalue.- Overrides:
containsKeyin classRecord
-
get
public Value get(String key)
Description copied from class:RecordReturns the value of the lastFieldmember of thisRecordwhose key is equal to the givenkey; returnsAbsentif thisRecordhas noFieldmember with a key equal to the givenkey. Equivalent toRecord.get(Value), but avoids boxing thekeystring into aTextvalue.
-
getAttr
public Value getAttr(String key)
Description copied from class:RecordReturns the value of the lastAttrmember of thisRecordwhose key is equal to the givenkey; returnsAbsentif thisRecordhas noAttrmember with a key equal to the givenkey. Equivalent toRecord.getAttr(Text), but avoids boxing thekeystring into aTextvalue.
-
getSlot
public Value getSlot(String key)
Description copied from class:RecordReturns the value of the lastSlotmember of thisRecordwhose key is equal to the givenkey; returnsAbsentif thisRecordhas noSlotmember with a key equal to the givenkey. Equivalent toRecord.getSlot(Value), but avoids boxing thekeystring into aTextvalue.
-
getField
public Field getField(Value key)
Description copied from class:RecordReturns the lastFieldmember of thisRecordwhose key is equal to the givenkey; returnsnullif thisRecordhas noFieldmember with akeyequal to the givenkey.
-
getField
public Field getField(String key)
Description copied from class:RecordReturns the lastFieldmember of thisRecordwhose key is equal to the givenkey; returnsnullif thisRecordhas noFieldmember with akeyequal to the givenkey. Equivalent toRecord.getField(Value), but avoids boxing thekeystring into aTextvalue.
-
get
public Item get(int index)
Description copied from class:RecordReturns the member of thisRecordat the givenindex, if theindexis greater than or equal to zero, and less than thelengthof thisRecord.
-
setItem
public Item setItem(int index, Item item)
Description copied from class:RecordReplaces the member of thisRecordat the givenindexwith a newitem, returning the previousItemat the givenindex, if theindexis greater than or equal to zero, and less than thelengthof thisRecord.
-
add
public boolean add(Item item)
Description copied from interface:BuilderAdds a single input value to this builder, returningtrueif the state of the builder changed.
-
add
public void add(int index, Item item)
-
remove
public Item remove(int index)
-
clear
public void clear()
-
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.
-
outlet
public Outlet<O> outlet(String key)
Description copied from interface:StreamletReturns theOutletof thisStreamletidentified by the givenkey; returnsnullif thisStreamlethas no suchOutlet.
-
invalidate
public void invalidate()
Description copied from interface:StreamletMarks thisStreamlet—and all of its outlets—as having stale state. Invalidating aStreamletwill recursively invalidate all streamlets that transitively depend on the state of thisStreamlet. Invalidating aStreamletdoes not cause its state to be recomputed. A subsequentStreamlet.reconcile(int)call will reconcile the state of theStreamlet.
-
reconcile
public void reconcile(int version)
Description copied from interface:StreamletReconciles the state of thisStreamlet, if the version of thisStreamlet's state differs from the targetversion. To reconcile its state, theStreamletfirst invokesInlet.reconcileOutput(int)on each of its inlets, to ensure that its input states are up-to-date. It then recomputes its own state, in an implementation defined manner. Finally, it invokesOutlet.reconcileInput(int)on its outlets, causing all transitively dependent streamlets to reconcile their own state.
-
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.
-
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.
-
willInvalidateInlet
public void willInvalidateInlet(Inlet<? extends I> inlet)
- Specified by:
willInvalidateInletin interfaceGenericStreamlet<I extends Value,O extends Value>
-
didInvalidateInlet
public void didInvalidateInlet(Inlet<? extends I> inlet)
- Specified by:
didInvalidateInletin interfaceGenericStreamlet<I extends Value,O extends Value>
-
willReconcileInlet
public void willReconcileInlet(Inlet<? extends I> inlet, int version)
- Specified by:
willReconcileInletin interfaceGenericStreamlet<I extends Value,O extends Value>
-
didReconcileInlet
public void didReconcileInlet(Inlet<? extends I> inlet, int version)
- Specified by:
didReconcileInletin interfaceGenericStreamlet<I extends Value,O extends Value>
-
willInvalidateOutlet
public void willInvalidateOutlet(Outlet<? super O> outlet)
- Specified by:
willInvalidateOutletin interfaceGenericStreamlet<I extends Value,O extends Value>
-
didInvalidateOutlet
public void didInvalidateOutlet(Outlet<? super O> outlet)
- Specified by:
didInvalidateOutletin interfaceGenericStreamlet<I extends Value,O extends Value>
-
willReconcileOutlet
public void willReconcileOutlet(Outlet<? super O> outlet, int version)
- Specified by:
willReconcileOutletin interfaceGenericStreamlet<I extends Value,O extends Value>
-
didReconcileOutlet
public void didReconcileOutlet(Outlet<? super O> outlet, int version)
- Specified by:
didReconcileOutletin interfaceGenericStreamlet<I extends Value,O extends Value>
-
willInvalidate
protected void willInvalidate()
-
onInvalidate
protected void onInvalidate()
-
onInvalidateOutlets
protected void onInvalidateOutlets()
-
didInvalidate
protected void didInvalidate()
-
willReconcile
protected void willReconcile(int version)
-
onReconcileInlets
protected void onReconcileInlets(int version)
-
onReconcile
protected void onReconcile(int version)
-
onReconcileOutlets
protected void onReconcileOutlets(int version)
-
didReconcile
protected void didReconcile(int version)
-
-