Инкремент переменной внутри цикла 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, если вы действительно хотите использовать значение. Я бы порекомендовал использовать запрос для вычисления всех полезных элементов, поскольку результат оценки запроса хранится в кеше, влияние на производительность будет минимальным.