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 :
C'est censé gérer les classes, leurs attributs et méthodes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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]
Appliqué à cette classe...
cela donne :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!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 } }
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.
Partager