Функции диаграмм состояний

Используйте следующие функции, чтобы программно контролировать диаграммы состояний и состояния.
Функции диаграмм состояний

Функции

Описание

T getActiveSimpleState()

Возвращает простое состояние диаграммы состояний, активное в данный момент.

T getState()

Возвращает простое состояние диаграммы состояний, активное в данный момент.

Примечание: эта функция не возвращает сложные состояния.

Set<T> getFullState()

Возвращает неупорядоченный набор активных в данный момент сложных состояний этой диаграммы состояний, включая текущее простое состояние.

String getName()

Возвращает имя диаграммы состояний.

String getFullName()

Возвращает имя диаграммы состояний c именем агента в начале в качестве префикса (например, Truck.statechart).

boolean isStateActive( T state )

Возвращает true, если управление диаграммы состояний находится в заданном состоянии. Если в качестве аргумента функции передано простое состояния, то возвращает непосредственно это состояние. Если передано сложное состояние, то функция возвращает одно из его внутренних состояний. Возвращает false, если управление диаграммы состояний не находится в заданном состоянии.

Параметр: state - состояние

Agent getAgent()

Возвращает агента, которому принадлежит это состояние.

boolean receiveMessage( Object msg )

boolean receiveMessage( int msg )

Размещает сообщение в диаграмме состояний, минуя постановку в очередь: сообщение либо сразу принимается (если есть активный переход, условие которого соответствует этому сообщению), либо удаляется. Если сообщение соответствует условиям двух или более переходов, эти переходы могут произойти независимо друг от друга (в соответствии со структурой диаграммы состояний), производя обработку одного и того же полученного сообщения. Если одновременно прибудут два (или более) сообщения, соответствующих условиям срабатывания перехода, то второе и все последующие сообщения будут проигнорированы.

Возвращает true, если сообщение соответствует хотя бы одному условию срабатывания; возвращает false в противном случае.

Параметр: msg - сообщение, переданное в диаграмму состояний.

fireEvent( Object msg )

Добавляет сообщение в очередь диаграммы состояний. Сообщение будет принято мгновенно или после одного или нескольких шагов диаграммы состояний, выполняемых за нулевое модельное время, в противном случае, будет удалено.

Параметр: msg - сообщение, полученное диаграммой состояний.

void onChange()

Следует вызывать, если в агенте что-то изменилось. Позволит определить момент изменения интенсивности или выполнения условия, если в диаграмме состояний присутствует хотя бы один переход, срабатывающий с заданной интенсивностью или при выполнении заданного условия.

Функции состояний

Функции

Описание

T getContainerState()

Возвращает сложное состояние, в котором находится текущее состояние. Если данное состояние находится на высшем уровне, и не входит в состав сложных состояний, то функция возвращает null.

Set<T> getFullState()

Возвращает неупорядоченный набор, содержащий это состояние и все сложные состояния (если такие имеются), содержащие это состояние.

Collection<T> getSimpleStatesDeep()

Возвращает коллекцию всех простых состояний внутри данного состояния.

Statechart<T> getStatechart( Agent agent )

Возвращает диаграмму состояний заданного агента agent,  которому принадлежит данное состояние. Возвращает null, если у агента нет диаграммы состояния с данным состоянием.

Set<T> getStatesInside()

Возвращает неупорядоченный набор всех состояний (простых и сложных), содержащихся внутри данного состояния.

boolean inState( Agent agent )

Возвращает true, если заданный агент agent находится в данном состоянии; возвращает false в противном случае.

boolean isSimpleState()

Возвращает true, если это состояние является простым; возвращает false, если оно является сложным.

String name()

Возвращает имя данного состояния.

int ordinal()

Возвращает порядковый номер этого состояния (порядок нумерации состояний детерминирован).