Hold

Блокирует/разблокировывает поток заявок на определенном участке блок-схемы. Если объект находится в заблокированном состоянии, то заявки не будут поступать на его входной порт и будут ждать, пока объект не будет разблокирован.

Состоянием объекта можно управлять программно с помощью метода setBlocked().

Объект Hold используется, например, когда объект может принимать заявки, но Вы не хотите (временно) продолжать их обработку или когда нужно заблокировать поступление заявок только от какого-то определенного объекта, в то же время принимая заявки, приходящие с выходных портов других объектов.

В отличие от других объектов библиотеки, Hold не хранит заявки внутри (даже в течение нулевого времени) и может рассматриваться как расширение входного или выходного порта (или портов).  

Параметры класса

Класс заявки
Класс заявок, проходящих через объект, должен быть подклассом Entity. Указав класс заявки, Вы можете напрямую обращаться к полям этого класса в коде динамических параметров, таких, как onEnter.
Синтаксис: T extends Entity
Значение по умолчанию: Entity

Порты

InPort in
Входной порт.
OutPort out
Выходной порт.

Параметры

Действие при входе [динамический]
Код, выполняемый при прохождении заявки через объект.
Синтаксис void onEnter
Локальная переменная: T entity - заявка. 
Изначально заблокирован
Если опция выбрана (true), то объект изначально находится в заблокированном состоянии.
Синтаксис boolean initiallyBlocked
Значение по умолчанию false

Функции

void setBlocked( boolean blocked ) - Блокирует входной порт, если в качестве значения аргумента передано true, и разблокировывает его в обратном случае.

boolean isBlocked() - Возвращает true, если входной порт заблокирован. Если порт не заблокирован - возвращает false.