Cours complet sur ATL (ATLAS Transformation Language) : les règles paresseuses (Lazy Rules)
Dans l'article précédent :
https://www.urbanisation-si.com/cours-complet-sur-atl-atlas-transformation-language-les-matched-rules-la-section-bloc-imperatif-55
nous avion abordé les “Matched Rules” (les règles de correspondance) et la section bloc impératif. Voyons à présent les règles paresseuses (Lazy Rules).
Les règles paresseuses (Lazy Rules)
Appel d’une « lazy rules »
Exemple d’une « lazy rules » :
from
i: ecore!EObject
to
rel: metamodel!Relationship (
)
}
Appel à partir d’une « matched rule » (règle de correspondance) :
from
s : ecore!EObject
to
t : metamodel!Node (
name <- s.toString(),
edges <- thisModule.getCross(s)
)
}
Appel multiple :
from
s : ecore!EObject
to
t : metamodel!Node (
name <- s.
edges <- ecore!EClass.allInstancesFrom('yourmodel')->collect(e | thisModule.getCross(e))
)
}
Lazy Rules unique
Déclaration :
...
}
Quand une « lazy rules unique » est exécutée, elle renvoie toujours le même élément cible pour un élément source donné. L’élément cible est retrouvé en naviguant dans les liens de traçabilité internes.
Une « lazy rules non unique » ne navigue pas dans les liens traçabilité, et crée un nouvel élément cible à chaque exécution.
"Mieux vaut une conscience tranquille qu'une destinée prospère. J'aime mieux un bon sommeil qu'un bon lit."
Victor Hugo
Voir aussi :
http://urbanisation-si.wix.com/blog
http://urbanisme-si.wix.com/blog
http://urbanisation-si.wix.com/urbanisation-si
http://urbanisation-si.over-blog.com/
http://rhonamaxwel.over-blog.com/
http://urbanisation-des-si.blogspot.fr/
A découvrir aussi
- Ingénierie Dirigée par les Modèles : didacticiel GMF, avec "Generate diagram code (Xtend2)" et suppression de quelques éléments ça marche !
- Didacticiel ( tutoriel ) Eclipse Sirius ( Obeo Designer Community ) : on peaufine l'éditeur de diagramme
- Cours complet sur ATL (ATLAS Transformation Language) : les tuples
Inscrivez-vous au site
Soyez prévenu par email des prochaines mises à jour
Rejoignez les 769 autres membres