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

Я пытаюсь подсчитать, сколько раз условие выполняется внутри цикла FOR. Я объявил дополнительную переменную для шаблона (FOUND: Integer), и я пытаюсь увеличивать ее каждый раз, когда условие [IF] имеет значение "true", но переменная увеличивается только в первый раз, затем она возвращается к своей исходной значение. В принципе, если 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]  

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

1 ответ

Решение

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

Другие вопросы по тегам