Closed reteprelief closed 7 years ago
This is addressed by a language update, see saeaadl/aadlv2.1#15
Content assist for the second element in a feature group chain does not work. This is because the context object passed to the scope provider is a Connection. With this context object, the scope provider cannot determine if the requested content assist is for the source or destination.
In AADL 2.2 connection source and/or destination can reach into feature groups to allow an arbitrary mapping between feature group elements in one component and features or feature group elements in another component. For details see sections 9.1 and 9.5 in the standard document.
The list of nested features in a connection source/destination is stored in a linked list of ConnectedElement
objects. The reference to the next object in the list is called next
and can be retrieved with method getNext()
.
If the connection source or destination is of the form f
or c.f
the model is the same as before: one connected element object is created with next == null.
If the source or destination is of the form c.f.f1.
... .fn
the nested features f1
... fn
are stored in connected elements c1
... cn
. In each of these ci
the context is null and connection end is a reference to fi
.
This way valid AADL 2.1 models are parsed exactly the same way as before, and the graphical editor (and every other plugin) continue to work correctly with such models.
For feature and feature group connections only those connections are added to the the instance model that pass through all features listed in the source and destination of the connection between two subcomponents. Connections still follow the declared connections up/down the hierarchy, such that the nested features listed in the connection source/destination effectively act as a filter on the set of available connections.
/cc @philip-alldredge @backesj
We have introduced FGM to specify mapping of features in different FGT even if their structures are different, or for performing name mapping. FGT has its own Github entry. The SAVI POC example makes use of independently defined FGT where suppliers refine the features with their own types and properties. Functional Integration checking detects these mismatches. The example has been ported to AADL V2, but has some issues with instantiation. The example is in SVN/aadl-models under examples-models/savipoc