Увеличение переменной внутри цикла FOR

Я пытаюсь подсчитать, сколько раз условие выполняется внутри цикла FOR. Я объявил дополнительную переменную для шаблона (FOUND : Integer), и я пытаюсь увеличивать ее каждый раз, когда условие [IF] «истинно», но переменная увеличивается только в первый раз, затем возвращается к исходному ценность. По сути, если FOUND = 1 в начале, в каждом цикле я получаю 2 на выходе.

Это код, который я пытаюсь использовать:

[template public genPartnerLinkJavaFile(aProcess : Process, varNameList : Sequence{String} .... etc)
 {FOUND : Integer = 1;}]
    [file ('PL'+aPartnerLink.name.toUpperFirst()+'.java', false, 'UTF-8')]
    public class ['PL'+aPartnerLink.name.toUpperFirst()/] {

[for (aVariable  : Variable | aProcess.eAllContents(Variable))]  
    [if (varNameList->includes(aVariable.name.toString() ) )]
    [FOUND+1/]
    [i/]
    [/if]
[/for]  

Знаете ли вы, как я мог добиться этого или чего-то подобного? Спасибо


person AxA    schedule 14.08.2012    source источник


Ответы (1)


В Acceleo все переменные окончательные. Вы можете использовать коллекцию для хранения всех используемых значений, а затем вычислить ее размер, или вы можете использовать службу Java, если вы действительно хотите использовать значение. Я бы рекомендовал использовать запрос для вычисления всех полезных элементов, поскольку результат оценки запроса хранится в кеше, влияние на производительность будет минимальным.

person sbegaudeau    schedule 17.08.2012