2014-09-18 4 views
0

Я создаю несколько файлов, используя различные шаблоны Acceleo, определенные в файле * .mtl.Acceleo M2T - записать временную метку в сгенерированный файл

В верхней цит эти файлы мне нужно написать что-то вроде:

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

Как я могу генерировать эту метку времени динамически каждый раз, когда я генерировать файлы?

Спасибо!

Редактировать: Я решил это, как описано ниже.

Только после module декларации, добавьте query объявления:

[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{}) /] 

Затем создайте класс с именем GenerationSupport и добавить метод, называемый 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(); 
}} 

ответ

2

попробовать что-то вроде этого:

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

А в классе Java, объявить метод с этой функциональностью:

public String getCurrentTime(){ 
    return customDate; 
} 

Где "customDate" должна быть строка в пользовательском формате: new Date(). toString(), использование форматов mm/dd/yyyy или что угодно.

Пожалуйста, не забудьте добавить пакет, содержащий этот класс Java для экспорта пакетов в MANIFEST.MF

Успехов!

0

Вы должны будете использовать то, что называется сервис". В основном это обычный метод в классе, который вернет дату в виде строки, отформатированной так, как вы хотите. Посмотрите на обучающие программы acceleo, чтобы увидеть, как используются сервисы, все есть.

 Смежные вопросы

  • Нет связанных вопросов^_^