<
From version < 24.1
edited by Richard Kreissig
on 2023/09/14 11:14
To version < 23.10 >
edited by Alexander Schulz-Rosengarten
on 2023/09/11 16:17
Change comment: Update document after refactoring.

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.stu230980
1 +XWiki.als
Content
... ... @@ -1,10 +1,12 @@
1 1  = KTM - KIELER Transformation Mapping =
2 2  
3 -== Deprecated since 0.12 ==
3 +{{panel bgColor="orange" title="Deprecated since 0.12"}}
4 4  This article is deprecated. The described features are no longer available in current releases.
5 5  
6 6  KTM was redesigned is now available as KiTT included in KiCool.
7 +{{/panel}}
7 7  
9 +\\
8 8  
9 9  === Topics ===
10 10  
... ... @@ -20,6 +20,7 @@
20 20  
21 21  == Transformation Tree Model ==
22 22  
25 +\\
23 23  
24 24  To offer a mapping between model-elements during multiple transformations KTM introduces a model called TransformationTree to represent these relations.
25 25  
... ... @@ -33,6 +33,7 @@
33 33  
34 34  **Second part** (lower half) is object-mapping. Instances of models contain EObjects as their elements, which are represented by EObjectWrapper-class in this metamodel. The EObjectWrapper of two models are connected with EObjectTransformations-class to express their origination relationship in corresponding model transformation.
35 35  
39 +\\
36 36  
37 37  An abstract example of an instance of this model:
38 38  
... ... @@ -86,8 +86,9 @@
86 86  
87 87  The codeblock blow show a snipped of SCChartCoreTransformation with additional mapping registration.
88 88  
89 -{{code language="java" theme="Eclipse" firstline="1" linenumbers="true" collapse="true" title="
90 -transformTriggerEffect CodeSnipped"}}
93 +\\
94 +
95 +{{code language="java" theme="Eclipse" firstline="1" title="transformTriggerEffect CodeSnipped" linenumbers="true" collapse="true"}}
91 91  ...
92 92    @Inject
93 93   extension TransformationMapping
... ... @@ -155,8 +155,9 @@
155 155  
156 156  The following code will now perform each transformation stepwise and updates a transformation tree each step.
157 157  
158 -{{code language="java" theme="Eclipse" firstline="1" linenumbers="true" collapse="true" title="
159 -Transform and create TranformationTree"}}
163 +\\
164 +
165 +{{code language="java" theme="Eclipse" firstline="1" title="Transform and create TranformationTree" linenumbers="true" collapse="true"}}
160 160  aboSplitTE = SCCtransformation.transformTriggerEffect(abo);
161 161  
162 162  ModelWrapper aboSplitTEModel =
... ... @@ -175,12 +175,14 @@
175 175  tree = transformationTree.root(aboSCGModel);
176 176  {{/code}}
177 177  
184 +\\
178 178  
179 179  The resulting TransformationTree has following structure and representing each step and model of the transformation.
180 180  
188 +\\
181 181  
182 182  (% class="wrapped" %)
183 -|=(% colspan="4" style="text-align: center;" %)(% colspan="4" style="text-align: center;" %)
191 +|=(% style="text-align: center;" colspan="4" %)(% style="text-align: center;" colspan="4" %)
184 184  (((
185 185  (% class="content-wrapper" %)
186 186  (((
... ... @@ -187,25 +187,25 @@
187 187  [[image:attach:example_tree.jpeg]]
188 188  )))
189 189  )))
190 -|(% colspan="1" style="text-align:center" %)(% colspan="1" style="text-align: center;" %)
198 +|(% style="text-align: center;" colspan="1" %)(% style="text-align: center;" colspan="1" %)
191 191  (((
192 192  (% class="content-wrapper" %)
193 193  (((
194 194  [[image:attach:example_abo.jpeg]]
195 195  )))
196 -)))|(% colspan="1" style="text-align:center" %)(% colspan="1" style="text-align: center;" %)
204 +)))|(% style="text-align: center;" colspan="1" %)(% style="text-align: center;" colspan="1" %)
197 197  (((
198 198  (% class="content-wrapper" %)
199 199  (((
200 200  [[image:attach:example_abo_splitTE.jpeg]]
201 201  )))
202 -)))|(% colspan="1" style="text-align:center" %)(% colspan="1" style="text-align: center;" %)
210 +)))|(% style="text-align: center;" colspan="1" %)(% style="text-align: center;" colspan="1" %)
203 203  (((
204 204  (% class="content-wrapper" %)
205 205  (((
206 206  [[image:attach:example_abo_norm.jpeg]]
207 207  )))
208 -)))|(% colspan="1" style="text-align:center" %)(% colspan="1" style="text-align: center;" %)
216 +)))|(% style="text-align: center;" colspan="1" %)(% style="text-align: center;" colspan="1" %)
209 209  (((
210 210  (% class="content-wrapper" %)
211 211  (((
... ... @@ -213,6 +213,7 @@
213 213  )))
214 214  )))
215 215  
224 +\\
216 216  
217 217  Furthermore the TransformationTree now contains mapping information for the whole transformation chain.
218 218  
... ... @@ -220,8 +220,9 @@
220 220  
221 221  The following code has starts with an instance of the initial ABO SCChart and SCG, along with the TranformationTree above.
222 222  
223 -{{code language="java" theme="Eclipse" firstline="1" linenumbers="true" collapse="true" title="
224 -resolveMapping"}}
232 +\\
233 +
234 +{{code language="java" theme="Eclipse" firstline="1" title="resolveMapping" linenumbers="true" collapse="true"}}
225 225  @Inject
226 226  extension TransformationTreeExtensions
227 227  
... ... @@ -233,6 +233,7 @@
233 233  val mapping = resolvemapping(aboSCCModelWrapper, aboSCC, aboSCGModelWrapper, aboSCG);
234 234  {{/code}}
235 235  
246 +\\
236 236  
237 237  The returned mapping is a multi mapping between all object in aboSCC and their resulting objects in aboSCG.
238 238  
... ... @@ -240,9 +240,11 @@
240 240  
241 241  [[image:attach:example_abo_resolved.jpeg]]
242 242  
254 +\\
243 243  
244 244  Also a more detailed view is available, showing all EObjects relation.
245 245  
258 +\\
246 246  
247 247  [[image:attach:example_abo_resolved_elements.jpeg]]
248 248  
... ... @@ -266,3 +266,4 @@
266 266  
267 267  If Selective selective mapping edge is enabled no mapping edges are displayed. If you select (//CLICK//) an element in one of the two model its relation to corresponding element is displayed. You can multi-select with //CTRL+CLICK// or deselect by clicking on an edge.
268 268  
282 +\\