|
|
The tool manages IDs for all model elements and mappings between them for traceability reasons.
|
|
|
|
|
|
## Code -> Architecture
|
|
|
Exporting an architecture model from the code is executed within 4 steps, from which each step contains a set of steps itself.
|
|
|
|
|
|
<img src='../../uploads/cd2b74fe4897d111796654572d0ad4e3/ID-Mapping_Model_Export.png' alt='missing' />
|
|
|
|
|
|
### Code <-> Implementation Model
|
|
|
First, each implementation model element gets an ID via the ID2ObjectMapper. It creates a map (EObject, UUID).
|
|
|
Then, a map (UUID, Transformation) from a model element's UUID to the element's transformation object is created using the method EmbedTransformationRegistry.createID(..), based on the first (EObject, UUID) map.
|
|
|
|
|
|
![TransformationManager.extractImplementationModelFromCode](/uploads/1ee8516e405d940f0960d37ad88f318b/TransformationManager.extractImplementationModelFromCode.png)
|
|
|
|
|
|
### Implementation Model <-> IL
|
|
|
The TransformationManager class gives the (EObject, UUID) map into the Implementation Model <-> IL transformations.
|
|
|
|
... | ... | @@ -23,12 +28,18 @@ Therefore at the end, the TGG transformation contains as its result four maps: |
|
|
|
|
|
The TransformationManager gives the Initial Model (EObject, UUID) to the next model transformation.
|
|
|
|
|
|
![M2MTransformationComponentImpl.transformModel](/uploads/49bf4b656b1b1f490bfe02552fef762f/M2MTransformationComponentImpl.transformModel.png)
|
|
|
|
|
|
### IL Module Transformations
|
|
|
The IL module transformations do not change any IDs. It just forwards the eObjectInstance2id_before as Initial Model (EObject, UUID) to the Result Model (EObject, UUID).
|
|
|
|
|
|
![HenshinTransformationTask.execute](/uploads/6822d94f55e17b6373dba0b51ba3bbc1/HenshinTransformationTask.execute.png)
|
|
|
|
|
|
### IL <-> Architecture Model
|
|
|
Here, the same mechanism is used as in Implementation Model <-> IL.
|
|
|
|
|
|
![M2MTransformationComponentImpl.transformModel](/uploads/49bf4b656b1b1f490bfe02552fef762f/M2MTransformationComponentImpl.transformModel.png)
|
|
|
|
|
|
### End of Code -> Architecture
|
|
|
In the end, the TransformationManager keeps the last TransformationResult, that contains:
|
|
|
* the model roots
|
... | ... | @@ -37,3 +48,12 @@ In the end, the TransformationManager keeps the last TransformationResult, that |
|
|
|
|
|
## Code <- Architecture
|
|
|
|
|
|
![Model_Integration](/uploads/643d57c92de2e9a2c6693d3fe75a85e4/Model_Integration.png)
|
|
|
|
|
|
![M2MTransformationComponentImpl.transformModel](/uploads/49bf4b656b1b1f490bfe02552fef762f/M2MTransformationComponentImpl.transformModel.png)
|
|
|
|
|
|
![HenshinTransformationTask.execute](/uploads/6822d94f55e17b6373dba0b51ba3bbc1/HenshinTransformationTask.execute.png)
|
|
|
|
|
|
![M2MTransformationComponentImpl.transformModel](/uploads/49bf4b656b1b1f490bfe02552fef762f/M2MTransformationComponentImpl.transformModel.png)
|
|
|
|
|
|
![TransformationManager.storeModelToCode](/uploads/4ffbe9b15a9ca879227c536213de2fb4/TransformationManager.storeModelToCode.png) |