Hi,
The eager approach works so that you go through the whole policy tree on call of the List<Evaluatable> getEvaluatables(RequestType request);
this method is meant to be used in conjunction with some indexing functionality, for example, to return a minimized set of applicable policies.
This sets of policies to return can be traversed form its root.
Each policy set has a list named "additionalInformation". This list contains elements of type PolicySet, Policy, Rule or IdReferenceType.
When you travers through the policy tree you, my opinion, can create a new list that simply copies all non-reference objects and replaces the reference objects. In the end you replace the list and go on level deeper into the tree. If you hit a Policy, then you're done.
Regarding your comment on the performance of the eager solution.
You are right, eager is very slow compared to the lazy approach. Nevertheless it is the only consitent way of retrieving policies (in theory, in practise it depends on your deployment strategy and your case).
Best is when you watch the issue in our JIRA (
http://dev.herasaf.org) that you get notified when we start working on it.
Regards,
Florian