![]() ![]() |
||||
|
||||
Flow specification declarations are represented by an
abstract FlowSpec class, which itself is a
subclass of the PropertyHolder class, and concrete classes for flow source (FlowSourceSpec),
flow
sink (FlowSinkSpec), and flow path (FlowPathSpec). These classes have references to members
of
the AbstractPort class in the same component type, represented by a source and destination
reference association - as appropriate. A flow specification can also refer to an element of a
port
group. In that case, the port group is referenced as the context (srcContext or dstContext)
of the
source (src) or destination (dst) reference.
The abstract FlowSequence class represents both
flow implementations and end-to-end flows. It is
a subclass of the ModeMember class. A FlowSequence class contains a sequence of
FlowElement objects that alternately represent a reference to a connection or a pair of references
to a subcomponent and its flow specification.
Flow implementations are represented by the abstract FlowImpl subclass
and the concrete
subclasses FlowSourceImpl, FlowSinkImpl, and FlowPathImpl. Each of these
concrete
subclasses has a reference association to the respective flow specification class it implements.
Flow implementations contain a sequence of FlowElement objects that alternately reference a
Connection object or a FlowSpec object in a subcomponent. In other words, a FlowElement
object
either has a connection reference, or it has a flowSpec reference and a flowContext
reference to a
subcomponent. The connection reference must be to a port connection, i.e., to one of the
concrete
classes DataConnection, EventConnection, EventDataConnection, PortGroupConnection,
or
ParameterConnection. The originating source port and the final destination port of a flow
implementation are identified by the flow specification being implemented, thus, are not explicitly
recorded as a FlowElement object. Note that these ports are referenced by the first and last
connection of the FlowElement sequence.
A FlowSinkImpl specifies a path from the flow
sink spec port through zero or more connection and
subcomponent flow specification pairs (FlowElement) with the last subcomponent flow specification
referring to a flow sink. A FlowSourceImpl specifies a path from a subcomponent flow source
specification represented by one FlowElement through zero or more connection and
subcomponent/flow specification pairs (FlowElement) followed by a FlowElement containing
the
connection to the destination port of the flow source implementation. A FlowPathImpl specifies
a
path from the (incoming) source port to the (outgoing) destination port of the flow path spec through
zero or more connection and subcomponent/flow specification pairs (FlowElement) ending with a
FlowElement that contains the connection to the destination port of the flow path implementation.
End-to-end flows are represented by the concrete EndToEndFlow class
through a sequence of
FlowElement objects with the first referring to the originating subcomponent and flow specification
pair and the remainder representing connection and subcomponent/flow specification pairs
(FlowElement).
![]() Figure 26 Flows |
||||