@Override public PolicyFinderResult findPolicy(EvaluationCtx context) { AbstractPolicy lookupPolicy = null; try { lookupPolicy = policies.getPolicy(context); // no matched policy found in the current policy collection, loading new one if (lookupPolicy == null) { try { AbstractPolicy loadedPolicy = policyResolver.lookup(context); policies.addPolicy(loadedPolicy); lookupPolicy = policies.getPolicy(context); } catch (PolicyException e) { e.printStackTrace(); } } } catch (TopLevelPolicyException e) { e.printStackTrace(); } return new PolicyFinderResult(lookupPolicy); }
@Override public void init(PolicyFinder finder) { this.finder = finder; policyResolver.init(finder); }