1 pièce(s) jointe(s)
Générer du code C++ grâce à Acceleo
Bonjour à tous,
Je souhaiterais sérialiser un fichier issu de Papyrus (.uml) en code C++ grâce à Acceleo.
J'ai créé un template que voici :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| [comment encoding = UTF-8 /]
[module le_projet('http://www.eclipse.org/uml2/4.0.0/UML')]
[template public le_projet(aClass : Class)]
[comment @main /]
[file (aClass.name.concat('.cpp'), false)]
public class [aClass.name.toUpperFirst()/] {
[for (p: Property | aClass.attribute) separator('\n')]
private [p.type.name/] [p.name/];
[/for]
[for (p: Property | aClass.attribute) separator('\n')]
public [p.type.name/] get[p.name.toUpperFirst()/]() {
return this.[p.name/];
}
[/for]
[for (o: Operation | aClass.ownedOperation) separator('\n')]
public [o.type.name/] [o.name/]([for(p:Parameter | o.ownedParameter)separator(',')] [p.type.name/] [p.name/] [/for]) {
// TODO should be implemented
}
[/for]
}
[/file]
[/template] |
C'est censé gérer les classes, leurs attributs et méthodes.
Appliqué à cette classe...
Pièce jointe 147604
cela donne :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
public class Recherche_de_fichier {
public String recherche_fichier_dans_arbo( String Nom_fichier ) {
// TODO should be implemented
}
public String Essai( String Essai_sortie , Bool Essai1 , String Essai2 ) {
// TODO should be implemented
}
} |
Pas si mal, mais il y a un problème puisque le paramètre de retour se retrouve également dans les paramètres d'entrée de la méthode!
J'ai bien trouvé une opération s'appelant in_and_out(EDiagnosticChain,EMap) : Boolean mais je ne sais pas du tout m'en servir et de plus, je ne suis pas sûr qu'elle résoudrait mon problème.
Quelqu'un saurait-il m'indiquer comment faire pour résoudre ce problème ?
Je débute dans ce domaine et j'ai quelques difficultés à obtenir de la documentation sur cette fonction.
D'avance, merci pour vos conseils / idées.