-
A this expression maps to a read self action. The result pin of the read self action is the result source element for the expression.
17.6Property Access Expressions
NOTE. The Alf property access expression notation may be used to represent the access to a property (structural feature or opposite association end) of any kind of classifier other than a primitive type. However, the only kinds of non-primitive classifiers in the fUML subset with properties are classes, data types and signals. Therefore, a property access expression can only be mapped to fUML if the type of its collection expression is a data type, class or signal, and the semantics of the expression are formally defined only in this case.
-
A property access expression is mapped as either a single instance property access or a sequence property access.
-
A single instance property access expression for an attribute is mapped to a read structural feature action for the named structural feature. The result source element of the mapping of the target expression is connected by an object flow to the object input pin of the read structural feature action. The result pin of the action is the result source element for the property access expression.
-
A sequence property access expression is mapped as an expansion region similarly to a collect expression (see Subclause 17.19).
-
An invocation expression is mapped as a behavior invocation or a feature invocation. Subclause 17.8 describes the mapping for tuples in general. Subclause 17.9 describes the mapping for behavior invocations (which also include a functional notation for reading associations). Subclause 17.10 describes the mapping for all other kinds of invocations. Note that, after static semantic analysis, a super invocation is mapped as a behavior invocation (see Subclause 17.11).
-
If the invocation expression is the assigned source for a local name, then it must map to a call action with result output pins. The actual source for the value of the local name is the fork node connected to the result output pin with that name.
17.8Tuples -
An empty tuple (i.e., a positional tuple with no argument expressions) is mapped to nothing. A non-empty tuple is mapped to a structured activity node containing the mapping of each of its argument expressions. There is a control flow from the structured activity node to the invocation action taking input from the tuple mapping.
-
For an argument for an in parameter, the argument expression is mapped as usual for an expression. The result source element of such an expression provides the source for setting the value of the associated parameter, unless conversion is required. If collection conversion is required, then the result source element of the argument expression is connect by an object flow to an invocation of the Collection::toSequence operation (see Subclause 11.6.2), and the result of that invocation provides the source for setting the value of the associated parameter, unless bit string conversion is also require. If bit string conversion is required, then either the result source element of the argument expression or the result of the toSequence invocation, if collection conversion was required, is connected by an object flow to an invocation of the BitStringFunctions::toBitString function (see Subclause 11.3.5), and the result of that invocation provides the source for setting the value of the associated parameter.
-
For an argument for an out parameter, the argument expression is mapped as a left hand side of an assignment (see Subclause 17.24): an argument that is a local name is mapped as a fork node while an argument that is a feature reference is mapped as write structural feature value action. The output from the invocation action for the corresponding parameter provides the assigned value.
-
For an argument for an inout parameter, the argument expression is mapped twice (as given above): once as for an in parameter, to provide the input value for the parameter, and once as for an out parameter, to provide the target for the output value.
17.9Behavior Invocation Expressions -
A behavior invocation expression whose qualified name disambiguates to a feature reference is mapped as if it were a feature invocation expression (see Subclause 17.10). Otherwise, a behavior invocation expression is mapped as either a behavior call or an association read.
-
A behavior invocation expression whose qualified name resolves to a behavior maps to a call behavior action for the named behavior.
If the behavior invocation expression has a non-empty tuple, then the call behavior action is the target of a control flow whose source is the structured activity node mapped from the tuple.
Each input pin of the call behavior action corresponds to an in or inout parameter of the called behavior. If there is an argument expression for that parameter in the tuple, then the input pin is the target of an object flow whose source is the result source element of the argument expression.
Similarly, each output pin of the call behavior action (other than the output pin for a return parameter) corresponds to an out or inout parameter. If there is an argument expression for that parameter in the type, then the output pin is the source of an object flow whose target is assigned value input for the argument expression.
NOTE. Call behavior action pins corresponding to unmatched parameters remain unconnected.
If the behavior has a return parameter, then the output pin of the call behavior action corresponding to that parameter is the result source element for the behavior invocation action. Otherwise it has no result source element.
-
A behavior invocation expression whose qualified name resolves to an association end maps to a read link action with end data for the ends of the named association. Except for the end data for the target end, the value input pins for each end are the target of an object flow from the result source element of the mapping of the corresponding argument expression. The result output pin of the read link action is the result source element for the association selection.
Share with your friends: |