<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SimEntity name="ArrivalProcessOpenDis7" package="dis7" version="1.0" author="terry" extend="SimkitOpenDis7Examples.run.OpenDisHelper" xsi:noNamespaceSchemaLocation="http://diana.nps.edu/Simkit/simkit.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Parameter name="address" type="java.lang.String">
        <Comment>An other than default network address</Comment>
    </Parameter>
    <Parameter name="port" type="int">
        <Comment>An other than default network port</Comment>
    </Parameter>
    <Parameter name="tA" type="simkit.random.RandomVariate">
        <Comment>Inter arrival time</Comment>
    </Parameter>
    <StateVariable name="N" type="int">
        <Comment>Number of arrivals</Comment>
    </StateVariable>
    <StateVariable name="C" type="int">
        <Comment>Number of entity creations</Comment>
    </StateVariable>
    <StateVariable name="R" type="int">
        <Comment>Number of entity removals</Comment>
    </StateVariable>
    <Event name="Run" description="This event is fired first to facilitate initialization of all simulation state variables">
        <Comment>Initialize all state variables</Comment>
        <StateTransition state="N">
            <Assignment value="0"/>
        </StateTransition>
        <StateTransition state="C">
            <Assignment value="1"/>
        </StateTransition>
        <StateTransition state="R">
            <Assignment value="0"/>
        </StateTransition>
        <Schedule delay="tA.generate()" event="Arrival" priority="DEFAULT"/>
        <Code></Code>
        <Coordinate x="50.0" y="70.0"/>
    </Event>
    <Event name="Arrival">
        <Comment>Tallys the number of arrivals and schedules future arrival events with time tA</Comment>
        <StateTransition state="N">
            <Assignment value="N + 1"/>
        </StateTransition>
        <Schedule delay="tA.generate()" event="Arrival" priority="DEFAULT"/>
        <Code>int everyTen = 10;
int oldC = C;
int oldR = R;

if ((N % everyTen) == 0) {
    disChannel.removeEntity(entityStatePdu_1.getEntityID());
    firePropertyChange("R", oldR, R+1);
} else {
    disChannel.addEntity(entityStatePdu_1.getEntityID());
    firePropertyChange("C", oldC, C+1);
}</Code>
        <Coordinate x="260.0" y="70.0"/>
    </Event>
    <Code></Code>
</SimEntity>