java.lang.Object
swim.system.AbstractWarpRef
swim.system.AbstractTierBinding
swim.system.LaneView
swim.system.warp.WarpLaneView
swim.system.lane.MapLaneView<K,V>
- All Implemented Interfaces:
Iterable<Map.Entry<K,
,V>> Map<K,
,V> SortedMap<K,
,V> DownlinkFactory
,Lane
,MapLane<K,
,V> WarpRef
,WarpLane
,Observable<Object>
,ObservableIterableMap<K,
,V> ObservableMap<K,
,V> ObservableOrderedMap<K,
,V> ObservableSortedMap<K,
,V> Inlet<Map<K,
,V>> MapInlet<K,
,V, Map<K, V>> MapOutlet<K,
,V, MapLane<K, V>> Outlet<MapLane<K,
,V>> CellContext
,TierBinding
,IterableMap<K,
,V> Log
,OrderedMap<K,
V>
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionprotected final AgentContext
protected HashTrieMap<K,
KeyEffect> protected int
protected MapLaneModel
protected HashTrieMap<K,
KeyOutlet<K, V>> protected int
Fields inherited from class swim.system.AbstractTierBinding
CLOSED_PHASE, CLOSED_STATE, CLOSING_STATE, FAILED_STATE, FAILING_STATE, LOADED_PHASE, LOADED_STATE, LOADING_STATE, OPENED_PHASE, OPENED_STATE, OPENING_STATE, PHASE_MASK, PHASE_SHIFT, RECOVERING_STATE, STARTED_PHASE, STARTED_STATE, STARTING_STATE, STATE_MASK, status, STATUS, STOPPING_STATE, UNLOADING_STATE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
void
Connects thisInlet
to anOutlet
from which it will acquire its state.void
bindOutput
(Inlet<? super MapLane<K, V>> output) Adds anoutput
to the set ofInlet
s that depend on the state of thisOutlet
.void
clear()
void
close()
Comparator<? super K>
boolean
containsKey
(Object key) Returnstrue
if the current state of thisMapOutlet
contains the givenkey
; otherwise returnsfalse
.boolean
containsValue
(Object value) void
decohere()
void
Marks thisOutlet
—and alloutputs
that depend on the state of thisOutlet
—as having decoherent state.void
decohereInputKey
(K key, KeyEffect effect) Marks thisMapOutlet
as needing aneffect
applied to a givenkey
.void
decohereKey
(K key, KeyEffect effect) void
Marks thisInlet
—and theStreamlet
to which thisInlet
is attached—as having decoherent state.void
decohereOutputKey
(K key, KeyEffect effect) Marks thisMapInlet
as needing aneffect
applied to a givenkey
.didCommand
(DidCommand didCommand) protected void
protected void
didDecohereKey
(K key, KeyEffect effect) protected void
didRecohere
(int version) protected void
didRecohereKey
(K key, KeyEffect effect, int version) didRemove
(DidRemoveKey<K, V> didRemove) didUpdate
(DidUpdateKey<K, V> didUpdate) void
Disconnects allInlet
s dominated by thisInlet
in the dataflow dependency graph.void
Disconnects allOutlet
s dominated by thisInlet
in the dataflow graph.boolean
dispatchDidClear
(Link link, boolean preemptive) boolean
dispatchDidDrop
(Link link, int lower, boolean preemptive) boolean
dispatchDidRemove
(Link link, K key, V oldValue, boolean preemptive) boolean
dispatchDidTake
(Link link, int upper, boolean preemptive) boolean
dispatchDidUpdate
(Link link, K key, V newValue, V oldValue, boolean preemptive) boolean
dispatchWillClear
(Link link, boolean preemptive) boolean
dispatchWillDrop
(Link link, int lower, boolean preemptive) boolean
dispatchWillRemove
(Link link, K key, boolean preemptive) boolean
dispatchWillTake
(Link link, int upper, boolean preemptive) dispatchWillUpdate
(Link link, K key, V newValue, boolean preemptive) void
drop
(int lower) entrySet()
firstKey()
get()
Returns the current state of thisOutlet
.Returns the value assocaited with the givenkey
in the current state of thisMapOutlet
, if defined; otherwise returnsnull
.getIndex
(int index) OrderedMap<K,
V> int
input()
Returns theOutlet
from which thisInlet
acquires its state; returnsnull
if thisInlet
is disconnected.boolean
isEmpty()
final boolean
isResident
(boolean isResident) final boolean
isTransient
(boolean isTransient) iterator()
<K2> MapLaneView<K2,
V> keyForm()
<K2> MapLaneView<K2,
V> Returns anIterator
over the keys in the current state of thisMapOutlet
.keySet()
void
void
laneDidDrop
(int lower) void
laneDidRemove
(K key, V oldValue) void
laneDidTake
(int upper) void
laneDidUpdate
(K key, V newValue, V oldValue) void
void
laneWillDrop
(int lower) void
laneWillRemove
(K key) void
laneWillTake
(int upper) laneWillUpdate
(K key, V newValue) lastKey()
protected void
protected void
onDecohereKey
(K key, KeyEffect effect) protected void
onRecohere
(int version) protected void
onRecohereKey
(K key, KeyEffect effect, int version) Returns anOutlet
that updates when the specifiedkey
updates.Returns anIterator
over the set ofInlet
s that depend on the state of thisOutlet
.previousEntry
(K key) previousKey
(K key) previousValue
(K key) void
void
recohere
(int version) void
recohereInput
(int version) Updates the state of thisOutlet
to make it consistent with the targetversion
.void
recohereInputKey
(K key, int version) Updates the state of an individualkey
in thisMapOutlet
to make it consistent with the targetversion
.void
recohereKey
(K key, int version) void
recohereOutput
(int version) Updates the state of thisInlet
to make it consistent with thetarget
version.void
recohereOutputKey
(K key, int version) Updates the state of an individualkey
in thisMapInlet
to make it consistent with the targetversion
.void
setKeyForm
(Form<K> keyForm) void
setValueForm
(Form<V> valueForm) int
size()
OrderedMap<K,
V> snapshot()
OrderedMap<K,
V> OrderedMap<K,
V> void
take
(int upper) protected Object
typesafeObservers
(Object observers) void
Disconnects thisInlet
from its inputOutlet
, if connected.void
unbindOutput
(Inlet<? super MapLane<K, V>> output) Removes anoutput
from the set ofInlet
s that depend on the state of thisOutlet
.void
Disconnects all outputs from thisOutlet
by invokingInlet.unbindInput()
on eachInelt
that depends on the state of thisOutlet
.<V2> MapLaneView<K,
V2> valueClass
(Class<V2> valueClass) <V2> MapLaneView<K,
V2> values()
willCommand
(WillCommand willCommand) protected void
protected void
willDecohereKey
(K key, KeyEffect effect) protected void
willLoad()
protected void
willRecohere
(int version) protected void
willRecohereKey
(K key, KeyEffect effect, int version) willRemove
(WillRemoveKey<K> willRemove) willUpdate
(WillUpdateKey<K, V> willUpdate) willUplink
(WillUplink willUplink) Methods inherited from class swim.system.warp.WarpLaneView
dispatchDidCommand, dispatchDidEnter, dispatchDidLeave, dispatchDidUplink, dispatchWillCommand, dispatchWillEnter, dispatchWillLeave, dispatchWillUplink, laneDidCommand, laneDidEnter, laneDidLeave, laneDidUplink, laneWillCommand, laneWillEnter, laneWillLeave, laneWillUplink
Methods inherited from class swim.system.LaneView
bindDownlink, bottomLane, cellAddress, closeDownlink, debug, edgeName, error, fail, hostUri, info, laneContext, laneDidFail, laneUri, meshUri, nodeUri, openDownlink, openMetaDownlink, policy, pushDown, reportDown, schedule, stage, store, tierContext, trace, unwrapLane, warn
Methods inherited from class swim.system.AbstractTierBinding
activate, awaitStart, didClose, didFail, didLoad, didOpen, didStart, didStop, didUnload, isClosed, isLoaded, isOpened, isStarted, load, open, start, stop, unload, willClose, willOpen, willStart, willStop, willUnload
Methods inherited from class swim.system.AbstractWarpRef
command, command, command, command, command, command, command, command, command, command, command, command, command, command, command, command, downlink, downlinkHttp, downlinkList, downlinkMap, downlinkValue, downlinkWs, hostRef, hostRef, laneRef, laneRef, laneRef, laneRef, nodeRef, nodeRef, nodeRef, nodeRef
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
-
Field Details
-
agentContext
-
keyForm
-
valueForm
-
laneBinding
-
dataView
-
flags
protected int flags -
input
-
effects
-
outlets
-
outputs
-
version
protected int version
-
-
Constructor Details
-
MapLaneView
-
-
Method Details
-
agentContext
- Specified by:
agentContext
in classLaneView
-
laneBinding
- Specified by:
laneBinding
in classLaneView
-
createLaneBinding
- Specified by:
createLaneBinding
in classLaneView
-
keyForm
-
keyForm
-
keyClass
-
setKeyForm
-
valueForm
-
valueForm
-
valueClass
- Specified by:
valueClass
in interfaceMapLane<K,
V>
-
setValueForm
-
typesafeObservers
-
isResident
public final boolean isResident()- Specified by:
isResident
in interfaceMapLane<K,
V>
-
isResident
- Specified by:
isResident
in interfaceMapLane<K,
V>
-
isTransient
public final boolean isTransient()- Specified by:
isTransient
in interfaceMapLane<K,
V>
-
isTransient
- Specified by:
isTransient
in interfaceMapLane<K,
V>
-
willLoad
protected void willLoad()- Overrides:
willLoad
in classAbstractTierBinding
-
close
public void close() -
observe
- Specified by:
observe
in interfaceLane
- Specified by:
observe
in interfaceMapLane<K,
V> - Specified by:
observe
in interfaceObservable<K>
- Specified by:
observe
in interfaceObservableMap<K,
V> - Specified by:
observe
in interfaceObservableSortedMap<K,
V> - Specified by:
observe
in interfaceWarpLane
- Overrides:
observe
in classWarpLaneView
-
unobserve
- Specified by:
unobserve
in interfaceLane
- Specified by:
unobserve
in interfaceMapLane<K,
V> - Specified by:
unobserve
in interfaceObservable<K>
- Specified by:
unobserve
in interfaceObservableMap<K,
V> - Specified by:
unobserve
in interfaceObservableSortedMap<K,
V> - Specified by:
unobserve
in interfaceWarpLane
- Overrides:
unobserve
in classWarpLaneView
-
willUpdate
- Specified by:
willUpdate
in interfaceMapLane<K,
V> - Specified by:
willUpdate
in interfaceObservableMap<K,
V>
-
didUpdate
-
willRemove
- Specified by:
willRemove
in interfaceMapLane<K,
V> - Specified by:
willRemove
in interfaceObservableMap<K,
V>
-
didRemove
-
willDrop
-
didDrop
-
willTake
-
didTake
-
willClear
-
didClear
-
willCommand
- Specified by:
willCommand
in interfaceMapLane<K,
V> - Specified by:
willCommand
in interfaceWarpLane
- Specified by:
willCommand
in classWarpLaneView
-
didCommand
- Specified by:
didCommand
in interfaceMapLane<K,
V> - Specified by:
didCommand
in interfaceWarpLane
- Specified by:
didCommand
in classWarpLaneView
-
willUplink
- Specified by:
willUplink
in interfaceMapLane<K,
V> - Specified by:
willUplink
in interfaceWarpLane
- Specified by:
willUplink
in classWarpLaneView
-
didUplink
-
willEnter
-
didEnter
-
willLeave
-
didLeave
-
dispatchWillUpdate
-
dispatchDidUpdate
-
dispatchWillRemove
-
dispatchDidRemove
-
dispatchWillDrop
-
dispatchDidDrop
-
dispatchWillTake
-
dispatchDidTake
-
dispatchWillClear
-
dispatchDidClear
-
laneWillUpdate
-
laneDidUpdate
-
laneWillRemove
-
laneDidRemove
-
laneWillDrop
public void laneWillDrop(int lower) -
laneDidDrop
public void laneDidDrop(int lower) -
laneWillTake
public void laneWillTake(int upper) -
laneDidTake
public void laneDidTake(int upper) -
laneWillClear
public void laneWillClear() -
laneDidClear
public void laneDidClear() -
isEmpty
public boolean isEmpty() -
size
public int size() -
containsKey
Description copied from interface:MapOutlet
Returnstrue
if the current state of thisMapOutlet
contains the givenkey
; otherwise returnsfalse
.- Specified by:
containsKey
in interfaceIterableMap<K,
V> - Specified by:
containsKey
in interfaceMap<K,
V> - Specified by:
containsKey
in interfaceMapOutlet<K,
V, MapLane<K, V>> - Specified by:
containsKey
in interfaceOrderedMap<K,
V>
-
containsValue
- Specified by:
containsValue
in interfaceIterableMap<K,
V> - Specified by:
containsValue
in interfaceMap<K,
V> - Specified by:
containsValue
in interfaceOrderedMap<K,
V>
-
indexOf
- Specified by:
indexOf
in interfaceOrderedMap<K,
V>
-
get
Description copied from interface:MapOutlet
Returns the value assocaited with the givenkey
in the current state of thisMapOutlet
, if defined; otherwise returnsnull
. -
getEntry
- Specified by:
getEntry
in interfaceOrderedMap<K,
V>
-
getIndex
- Specified by:
getIndex
in interfaceOrderedMap<K,
V>
-
firstEntry
- Specified by:
firstEntry
in interfaceOrderedMap<K,
V>
-
firstKey
-
firstValue
- Specified by:
firstValue
in interfaceOrderedMap<K,
V>
-
lastEntry
- Specified by:
lastEntry
in interfaceOrderedMap<K,
V>
-
lastKey
-
lastValue
- Specified by:
lastValue
in interfaceOrderedMap<K,
V>
-
nextEntry
- Specified by:
nextEntry
in interfaceOrderedMap<K,
V>
-
nextKey
- Specified by:
nextKey
in interfaceOrderedMap<K,
V>
-
nextValue
- Specified by:
nextValue
in interfaceOrderedMap<K,
V>
-
previousEntry
- Specified by:
previousEntry
in interfaceOrderedMap<K,
V>
-
previousKey
- Specified by:
previousKey
in interfaceOrderedMap<K,
V>
-
previousValue
- Specified by:
previousValue
in interfaceOrderedMap<K,
V>
-
put
-
putAll
-
remove
-
drop
public void drop(int lower) - Specified by:
drop
in interfaceObservableSortedMap<K,
V>
-
take
public void take(int upper) - Specified by:
take
in interfaceObservableSortedMap<K,
V>
-
clear
public void clear() -
headMap
-
tailMap
-
subMap
-
entrySet
-
keySet
-
values
-
iterator
-
keyIterator
Description copied from interface:MapOutlet
Returns anIterator
over the keys in the current state of thisMapOutlet
.- Specified by:
keyIterator
in interfaceIterableMap<K,
V> - Specified by:
keyIterator
in interfaceMapLane<K,
V> - Specified by:
keyIterator
in interfaceMapOutlet<K,
V, MapLane<K, V>> - Specified by:
keyIterator
in interfaceOrderedMap<K,
V>
-
valueIterator
- Specified by:
valueIterator
in interfaceIterableMap<K,
V> - Specified by:
valueIterator
in interfaceOrderedMap<K,
V>
-
snapshot
-
comparator
- Specified by:
comparator
in interfaceOrderedMap<K,
V> - Specified by:
comparator
in interfaceSortedMap<K,
V>
-
get
Description copied from interface:Outlet
Returns the current state of thisOutlet
. -
input
Description copied from interface:Inlet
Returns theOutlet
from which thisInlet
acquires its state; returnsnull
if thisInlet
is disconnected. -
bindInput
Description copied from interface:Inlet
Connects thisInlet
to anOutlet
from which it will acquire its state. If thisInlet
is already connected, it will first disconnect from its existing input. Then, after updating itsinput
property, theInlet
will invokeOutlet.bindOutput(Inlet)
on its newinput
. -
bindInput
-
unbindInput
public void unbindInput()Description copied from interface:Inlet
Disconnects thisInlet
from its inputOutlet
, if connected. After setting itsinput
property tonull
, theInlet
will invokeOutlet.unbindOutput(Inlet)
on its old input, if defined.- Specified by:
unbindInput
in interfaceInlet<K>
-
disconnectInputs
public void disconnectInputs()Description copied from interface:Inlet
Disconnects allInlet
s dominated by thisInlet
in the dataflow dependency graph. Used to recursively clean up chains of combinators terminating at thisInlet
.- Specified by:
disconnectInputs
in interfaceInlet<K>
- Specified by:
disconnectInputs
in interfaceOutlet<K>
-
outlet
Description copied from interface:MapOutlet
Returns anOutlet
that updates when the specifiedkey
updates. -
outputIterator
Description copied from interface:Outlet
Returns anIterator
over the set ofInlet
s that depend on the state of thisOutlet
.- Specified by:
outputIterator
in interfaceOutlet<K>
-
bindOutput
Description copied from interface:Outlet
Adds anoutput
to the set ofInlet
s that depend on the state of thisOutlet
. Theoutput
will be decohered when the state of thisOutlet
is decohered, and recohered when thisOutlet
is recohered.- Specified by:
bindOutput
in interfaceOutlet<K>
-
unbindOutput
Description copied from interface:Outlet
Removes anoutput
from the set ofInlet
s that depend on the state of thisOutlet
.- Specified by:
unbindOutput
in interfaceOutlet<K>
-
unbindOutputs
public void unbindOutputs()Description copied from interface:Outlet
Disconnects all outputs from thisOutlet
by invokingInlet.unbindInput()
on eachInelt
that depends on the state of thisOutlet
.- Specified by:
unbindOutputs
in interfaceOutlet<K>
-
disconnectOutputs
public void disconnectOutputs()Description copied from interface:Inlet
Disconnects allOutlet
s dominated by thisInlet
in the dataflow graph. Used to recursively clean up chains of combinators passing through thisInlet
.- Specified by:
disconnectOutputs
in interfaceInlet<K>
- Specified by:
disconnectOutputs
in interfaceOutlet<K>
-
decohereOutputKey
Description copied from interface:MapInlet
Marks thisMapInlet
as needing aneffect
applied to a givenkey
. Decohering an individual key decoheres the entire state of theInlet
. But only the decoherent keys need to be updated in order to recohere the overall state of theInlet
. -
decohereInputKey
Description copied from interface:MapOutlet
Marks thisMapOutlet
as needing aneffect
applied to a givenkey
. Decohering an individual key decoheres the entire state of theOutlet
. But only the decoherent keys need to be updated in order to recohere the overall state of theOutlet
. -
decohereKey
-
decohereOutput
public void decohereOutput()Description copied from interface:Inlet
Marks thisInlet
—and theStreamlet
to which thisInlet
is attached—as having decoherent state. Decohering anInlet
will recursively decohere all streamlets that transitively depend on the state of thisInlet
. Decohering anInlet
does not cause its state to be recomputed. A subsequentInlet.recohereOutput(int)
call will eventually make the state of theInlet
coherent again.- Specified by:
decohereOutput
in interfaceInlet<K>
-
decohereInput
public void decohereInput()Description copied from interface:Outlet
Marks thisOutlet
—and alloutputs
that depend on the state of thisOutlet
—as having decoherent state.- Specified by:
decohereInput
in interfaceOutlet<K>
-
decohere
public void decohere() -
recohereOutputKey
Description copied from interface:MapInlet
Updates the state of an individualkey
in thisMapInlet
to make it consistent with the targetversion
. TheMapInlet
only needs to update if the currentversion
differs from the targetversion
. To update the state of a key, theMapInlet
first invokesMapOutlet.recohereInputKey(Object, int)
on itsinput
, if its input is aMapOutlet
, or it invokesOutlet.recohereInput(int)
, if its input is not aMapOutlet
. Then, if all decoherent keys have been recohered, theMapInlet
invokesStreamlet.recohere(int)
on its attached streamlet. -
recohereInputKey
Description copied from interface:MapOutlet
Updates the state of an individualkey
in thisMapOutlet
to make it consistent with the targetversion
. TheMapOutlet
only needs to update if its currentversion
differs from the targetversion
. To update the state of a key, theMapOutlet
first invokesStreamlet.recohere(int)
on its attached streamlets. Then, for each dependent output, it invokesMapInlet.recohereOutputKey(Object, int)
, if the dependent output is aMapInlet
, or it invokesInlet.recohereOutput(int)
, if the dependent output is not aMapInlet
. -
recohereKey
-
recohereOutput
public void recohereOutput(int version) Description copied from interface:Inlet
Updates the state of thisInlet
to make it consistent with thetarget
version. TheInlet
only needs to update if its currentversion
differs from the targetversion
. To update its state, theInlet
first invokesOutlet.recohereInput(int)
on itsinput
, to ensure that its input is coherent. It then invokesStreamlet.recohere(int)
on theStreamlet
to which it's attached, causing theStreamlet
to make its own state coherent again.- Specified by:
recohereOutput
in interfaceInlet<K>
-
recohereInput
public void recohereInput(int version) Description copied from interface:Outlet
Updates the state of thisOutlet
to make it consistent with the targetversion
. TheOutlet
only needs to update if its currentversion
differs from the targetversion
. To update its state, theOutlet
first invokesStreamlet.recohere(int)
on theStreamlet
to which it's attached. It then invokesInlet.recohereOutput(int)
on each of its dependentoutputs
.- Specified by:
recohereInput
in interfaceOutlet<K>
-
recohere
public void recohere(int version) -
willDecohereKey
-
onDecohereKey
-
didDecohereKey
-
willDecohere
protected void willDecohere() -
onDecohere
protected void onDecohere() -
didDecohere
protected void didDecohere() -
willRecohereKey
-
onRecohereKey
-
didRecohereKey
-
willRecohere
protected void willRecohere(int version) -
onRecohere
protected void onRecohere(int version) -
didRecohere
protected void didRecohere(int version)
-