2014-09-18 5 views
0

Je génère des fichiers en utilisant différents modèles Acceleo définis dans un fichier * .mtl.Acceleo M2T - Écrire un horodatage dans un fichier généré

Au sommet op ces fichiers que je dois écrire quelque chose comme:

#----------------------------------------------------------------------------- 
# Project automatically generated by XXX at (add timestamp here) 
#----------------------------------------------------------------------------- 

Comment pourrais-je générer ce horodatage dynamiquement chaque fois que je produis les fichiers?

Merci!

Editer: J'ai résolu ceci comme décrit ci-dessous.

Juste après la déclaration module, ajoutez query déclarations:

[module generate('platform:/resource/qt48_model/qt48_xmlschema.xsd') ] 
[comment get timestamp/] 
[query public getCurrentTime(c : OclAny) : String = 
invoke('org.eclipse.acceleo.qt_test_api.generator.common.GenerationSupport', 'getCurrentTime()', Sequence{}) /] 

Ensuite, créez une classe appelée GenerationSupport et ajouter une méthode appelée getCurrentTime():

package org.eclipse.acceleo.qt_test_api.generator.common; 

import java.sql.Timestamp; 

public class GenerationSupport { 

public String getCurrentTime(){ 
    java.util.Date date = new java.util.Date(); 
    Timestamp ts = new Timestamp(date.getTime()); 
    return ts.toString(); 
}} 

Répondre

2

essayer quelque chose comme ceci:

[query public getCurrentTime(traceabilityContext : OclAny): 
    String = invoke('yourPackage.YourJavaClass', 'getCurrentTime()', Sequence{}) 
/] 

Et dans votre classe Java, Déclarez une méthode avec cette fonctionnalité:

public String getCurrentTime(){ 
    return customDate; 
} 

Où "customDate" doit être une chaîne dans votre format personnalisé: new Date(). toString(), utilisation des formats mm/jj/aaaa ou tout ce que vous voulez.

S'il vous plaît, ne pas oublier d'ajouter le package qui contient cette classe Java pour exporter des packages dans MANIFEST.MF

Bonne chance!

0

Vous devez utiliser ce qu'on appelle un service". Il s'agit simplement d'une méthode publique dans une classe qui renvoie la date sous forme de chaîne, formatée comme vous le souhaitez. Regardez les tutoriels acceleo pour voir comment les services sont utilisés, tout est là.