Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Graphical Modeling Framweork/Reconciler

Revision as of 11:10, 10 April 2007 by Dstadnik.borland.com (Talk | contribs) (Transformation)

Transformation

Model reconciler is a piece of GMF that preserves some gmfgen model parts when it is regenerated from gmfmap model. Mostly they are properties that are available only in gmfgen model and may be customized by toolsmith such as class names.

Here is a brief outline of transformation logic (see TransformToGenModelOperation for actual implementation):

  1. Source models are being loaded (gmfmap, genmodel)
  2. Visual IDs dispenser is acquired; it may be the default one that assigns IDs incrementialy or merging one that uses trace file to preserve IDs distributed earlier
  3. Mapping model is being transformed to generator model (deprecated names dispenser assigns names here, the new one does nothing)
  4. New generator model is being reconciled with the old one if it's available; class names from the old model are copied into the new one
  5. New names dispenser traverses reconciled model twice: during the first pass it collects assigned class names and during the second pass it generates missing class names so they are unique
  6. New model is saved and validated

If class names are dispensed after the generator model was reconciled it's clear which names should be preserved (names that are not nulls). If class names are dispensed during model transformation and restored after that chances are that there may be collisions between dispensed and restored names.

Related Classes

  • TransformToGenModelOperation - transforms mapping to generator model
  • Reconciler - reconciles new generator model with the new one; uses matchers and decisions to describe behaviour
  • GMFGenConfig - reconciler configuration for generator model
  • GenNamingMediatorImpl - names dispenser that generates class unique names using pluggable strategies

Back to the top