Lors de la transformation en code Java d'un modèle UML, l'option Remplacer les éléments UML étant cochée, les objets présents dans le modèle UML sont remplacés par les raccourcis correspondants vers les fichiers Java générés. Le bouton Annuler vous permet d'annuler l'opération. Mais, si vous cliquez alors sur le bouton Répéter, le modèle perd tous les raccourcis vers les fichiers Java précédemment générés. Pour pallier le problème, n'utilisez pas le bouton Répéter. Réexécutez plutôt la transformation d'UML en Java.
Une transformation d'UML en Java risque de ne pas actualiser un élément Java si cet élément est précédé de deux commentaires Javadoc.
Si, par exemple, une transformation génère un élément Java qui contient une balise @generated dans son Javadoc et qu'un autre commentaire Javadoc précède l'élément Java, ce dernier (par exemple, transformGenerated()) ne sera pas actualisé lors de la réapplication de la transformation.
/**
* Méthode commentée créée par un utilisateur
*/
// private void userCreated() {
// }
/**
* @generated "..."
*/
public void transformGenerated() {
}Pour pallier ce problème, supprimez les commentaires de la totalité des éléments Java (totalité des définitions de méthodes, de zones, de classes ou d'interfaces) et déplacez-les, sans omettre les éventuels commentaires qui les précèdent, à la fin du fichier source Java avant les accolades finales (}). Notre exemple devra donc ressembler à ceci :
/**
* @generated "..."
*/
public void transformGenerated() {
}
... fin du fichier source, avant les accolades finales...
/**
* Méthode commentée créée par un utilisateur
*/
// private void userCreated() {
// }
La transformation d'un UML en Java peut supprimer un élément Java du code source s'il n'est plus spécifié dans le modèle source.
Par exemple, lors de la réapplication d'une transformation, si une méthode (par exemple, importantUserCreated()) n'est pas définie dans le modèle source, cette méthode sera supprimée du code source, en même temps que le code commenté qui contient le Javadoc.
/**
* @generated "..."
*/
// public void generatedMethodUserWantsToSave() {
// }
private void importantUserCreated() {
}Pour pallier ce problème, supprimez les commentaires de la totalité des éléments Java (totalité des définitions de méthodes, de zones, de classes ou d'interfaces) et déplacez-les, sans omettre les éventuels commentaires qui les précèdent, à la fin du fichier source Java avant les accolades finales (}). Notre exemple devra donc ressembler à ceci :
private void importantUserCreated() {
}
... fin du fichier source, avant les accolades finales...
/**
* @generated "..."
*/
// public void generatedMethodUserWantsToSave() {
// }
Retour au fichier Readme principal