public class FSMCausalityInterface extends CausalityInterfaceForComposites
All input ports that affect the state (i.e. that are mentioned in any guard) must be in an equivalence class. Otherwise, we cannot reliably make a decision about what the next state is. In addition, if any input in a refinement affects an output, that input must also be in this equivalence class. Otherwise, the scheduler will assume there is no relationship between these inputs and could provide an event that triggers a state transition in an earlier firing than an event that triggers an output from the current refinement.
_actorDepthVersion, _actorToDepth, _dependencyVersion, _equivalenceClasses, _forwardDependencies, _reverseDependencies
_actor, _backwardPrunedDependencies, _defaultDependency, _delayDependencies, _EMPTY_COLLECTION, _forwardPrunedDependencies
Constructor and Description |
---|
FSMCausalityInterface(Actor actor,
Dependency defaultDependency)
Construct a causality interface for the specified actor.
|
Modifier and Type | Method and Description |
---|---|
Dependency |
getDependency(IOPort input,
IOPort output)
Return the dependency between the specified input port
and the specified output port.
|
_computeActorDepth, checkForCycles, dependentPorts, describeDepths, equivalentPorts, getDepthOfActor, getDepthOfPort, invalidate, removeDependency, topologicalSort
_growDependencies, declareDelayDependency, getActor, getDefaultDependency, toString
public FSMCausalityInterface(Actor actor, Dependency defaultDependency) throws java.lang.IllegalArgumentException
actor
- The actor for which this is a causality interface.
This is required to be an instance of CompositeEntity.defaultDependency
- The default dependency of an output
port on an input port.java.lang.IllegalArgumentException
- If the actor parameter is not
an instance of CompositeEntity.public Dependency getDependency(IOPort input, IOPort output) throws IllegalActionException
getDependency
in interface CausalityInterface
getDependency
in class CausalityInterfaceForComposites
input
- The input port.output
- The output port, or null to update the
dependencies (and record equivalence classes) without
requiring there to be an output port.IllegalActionException
- If a guard expression cannot be parsed.