Split

Для каждой поступающей заявки (будем называть ее заявкой-оригиналом) объект создает заданное число новых заявок (будем называть их заявками-копиями) и пересылает их дальше через порт outCopy.  

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

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

Есть два места, где Вы можете проинициализировать новую заявку: параметры Новая заявка и Действие при выходе копии. В кодах обоих этих параметров заявка-оригинал доступна как original, а номер созданной заявки - как index. Если Вы хотите отслеживать взаимосвязь заявки-оригинала и копий этой заявки, то Вы можете создать у класса заявки поле id и присваивать значение идентификатора оригинала создаваемым заявкам. Если впоследствии Вы захотите присоединить заявки-копии к оригиналу, то Вы сможете воспользоваться этим идентификатором в качестве критерия сравнения заявок. Реальное "воссоединение" может быть реализовано с помощью нескольких объектов Match или с помощью специального кода. В простейшем случае, когда создается только одна копия каждого оригинала, и их порядок не меняется по ходу продвижения по потоковой диаграмме, Вы можете собрать одну заявку из двух с помощью объекта Combine.

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

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

Порты

InPort in
Входной порт.
OutPortPush out
Выходной порт для заявок-оригиналов.
OutPortPush outCopy
Выходной порт для заявок-копий, создаваемых этим объектом.

Параметры

Действие при входе [динамический]
Код, выполняемый, когда заявка-оригинал поступает в объект.
Синтаксис: void onEnter
Локальная переменная: T entity - заявка. 
Количество копий [динамический]
Выражение, определяющее количество создаваемых заявок-копий.
Синтаксис: int numberOfCopies
Значение по умолчанию: 1
Локальная переменная: T entity - заявка-оригинал.
Новая заявка (копия) [динамический]
Выражение, определяющая, какая заявка будет создаваться (обычно просто вызов конструктора класса создаваемой заявки).
Синтаксис: Entity newEntity
Значение по умолчанию: new Entity()
Локальные переменные: T original - заявка-оригинал.
                         int index - номер новой заявки (среди прочих, созданных для данной заявки-оригинала; равен 0, если для оригинала была создана одна заявка).
Действие при выходе копии [динамический]
Код, выполняемый, когда созданная заявка покидает объект.
Синтаксис: void onExitCopy
Локальные переменные: TCopy entity - новая заявка.
                        int index - номер новой заявки (см. выше).
                        T original - заявка-оригинал.
Действие при выходе оригинала [динамический]
Код, выполняемый, когда заявка-оригинал покидает объект.
Синтаксис: void onExit
Локальная переменная: T entity - поступившая в объект исходная заявка (оригинал).
Фигура анимации копии заявки [динамический]
Фигура анимации, с помощью которой заявки, создаваемые этим объектом, будут отображаться на презентации. Фигура доступна из кода как  entity.getShape() и может быть изменена в любое время с помощью метода entity.setShape(). Поскольку этот параметр динамический, Вы можете задавать различные фигуры для различных заявок, или вообще задать уникальную фигуру для каждой заявки, написав здесь, например, new ShapeOval().
Синтаксис: Shape entityShape
Локальная переменная: T entity - заявка.
Уникальная фигура для каждой копии
Если опция выбрана (true), то объект создаст копию заданной Фигуры анимации копии заявки и присвоит ее создаваемой заявке. В этом случае свойства фигуры (и ее содержимое, если это группа фигур) могут быть изменены отдельно для каждой заявки. Если же опция не выбрана, то все заявки будут отображаться с помощью одной и той же фигуры, и любое изменение ее свойств приведет к изменению анимаций всех таких заявок.
Синтаксис: boolean uniqueShape
Значение по умолчанию: false
Разрешить вращение
Если опция выбрана (true), то при движении заявок-копий их фигуры анимации будут всегда поворачиваться согласно текущему направлению движения заявки.
Синтаксис: boolean enableRotation
Значение по умолчанию: false
Разрешить вращение по вертикали
Если опция выбрана (true), то при движении заявок-копий их фигуры анимации будут поворачиваться согласно текущему направлению движения заявки как по горизонтали, так и по вертикали.
Синтаксис: boolean enableVerticalRotation
Значение по умолчанию: true