Decision Element
§4.10.1 and §4.10.2. Declared through decisionElement; never constructed directly.
Properties
How many sinks are attached.
The priority this element's epoch events carry (§4.6.2, G.9 row 12). Lower sorts earlier.
How many deferred requests have been made this replication, duplicates included.
How many transitions this element discarded because they had no duration (S§C.11.2).
How many decision requests arrived after the episode had already ended (see decide).
Whether anything is listening (§4.8.2).
The reason given to the most recent decision this element took.
A cap on decisions per episode.
The reasons requested and not yet decided on, in request order.
The rule. Replication-initial: the setter throws while the model is running. Assigning a ShapeAwarePolicyIfc calls its configure(descriptor()) immediately, so a rule that requires something of the shape, or must build something from it, fails or does its work here rather than at the first epoch.
Labels this rule in trajectories and reports. Defaults to the policy's class name.
Functions
This method should be overridden by subclasses that need actions performed after an experiment has been completed It is called after all replications are done and can be used to collect data from the model element, etc.
Send this element's transitions to sink, from now until it is detached (§4.8.2).
This method should be overridden by subclasses that need logic to be performed prior to an experiment. The beforeExperiment method allows model elements to be set up prior to the first replication within an experiment. It is called once before any replications occur.
Detach every sink. Closes none of them, for the reason detachTransitionSink gives.
Stop sending transitions to sink. Returns whether it was attached.
This method should be overridden by subclasses that need actions performed to initialize prior to a replication. It is called once before each replication occurs if the model element wants initialization. It is called after beforeReplication() is called
Whether sink is currently attached to this element.
Resolve the lever declared over owner. The owner is a lookup KEY here, not the lever's identity (§4.1.2.2): it must resolve to exactly one lever, and throws AmbiguousLeverException if it backs several.
This method should be overridden by subclasses that need actions performed when the replication ends and prior to the calling of afterReplication(). It is called when each replication ends and can be used to collect data from the model element, etc.
Ask for a decision at the current time, taken in an event of the element's own.
A rate is a parameter (§4.1.3), so it is replication-initial and re-signed on assignment — the sense was fixed at declaration and only the magnitude is being set here.
What the declaration says about units, and what it therefore could not check (§4.2.4).