Condition

interface Condition<T> : Disposable

A prerequisite over model state owned by a Reaction.

Recurring reactions normally observe condition validity to gate scheduling. A reaction with occurrence-time semantics may read the same validity only when it fires. Reaction families requiring additional scheduling state subscribe directly to their narrow semantic inputs.

Type Parameters

T

concentration type

Inheritors

Properties

Link copied to clipboard
abstract val isValid: Observable<Boolean>

The live validity of this condition.

Link copied to clipboard
abstract val reaction: Reaction<T>

The reaction owning this condition. Its Reaction.host is the model entity hosting the condition, which may differ from the node it targets, if any.

Functions

Link copied to clipboard

Signals that the owning reaction is about to fire. Used to implement conditions latched to changes that occur in-between reaction executions.

Link copied to clipboard
abstract fun cloneCondition(newReaction: Reaction<T>): Condition<T>

Creates an equivalent condition owned by newReaction, such as a reaction cloned onto a new node. A condition targeting the host of its reaction targets the host of newReaction, which must then be a Node; a condition targeting any other node keeps its target.

Link copied to clipboard
abstract fun dispose()

Disposes and releases the resources held by this object.

Link copied to clipboard
infix fun Condition<*>.shouldEqual(other: Condition<*>)