Community
Participate
Working Groups
AQL currently has no support for recursive queries such as closure() or for "generic" iteration (only the specialized collect, select, reject, ...) For example, in the case of a parent-children relationship, OCL allowed users to write parent->closure(children) to get *all* children of 'parent', recursively. Likewise, we could use iterate as a generic iterator instead of specialized one. For example, classes->collect(name) could be written classes->iterate(c : Class ; acc : Set{} | acc->including(c.name))
New Gerrit change created: https://git.eclipse.org/r/63316
Th patch provides the closure() service but doesn't provide a complete validation for this service. We need to have access to variables to be able to compute the type of the lambda expression in a closure fashion. This will impact a lot of code to fix this. We should settle other patches before going that way...
Gerrit change https://git.eclipse.org/r/63316 was merged to [master]. Commit: http://git.eclipse.org/c/acceleo/org.eclipse.acceleo.git/commit/?id=6e7859b912842dd0723d032e9aa0f250b8ef4145
The closure() service is implemented. The iterate() service seems useless. It's hard to read and maintain in expressions. We rather prefer a custom Java service approach. If you want the iterate() service to be implemented reopen this bug.