Iterator<AbstractPolicy> it = policies.iterator();
// iterate through all the policies we currently have loaded
while (it.hasNext()) {
AbstractPolicy policy = it.next();
MatchResult match = policy.match(context);
int result = match.getResult();
// if target matching was indeterminate, then return the error
if (result == MatchResult.INDETERMINATE)
return new PolicyFinderResult(match.getStatus());
// see if the target matched
if (result == MatchResult.MATCH) {
// see if we previously found another match
if (selectedPolicy != null) {