code: public AbstractPolicy getPolicy(EvaluationCtx eval)
              throws TopLevelPolicyException, PolicyIndexException {
          Map<String, AbstractPolicy> potentialPolicies =
                  m_policyIndex.getPolicies(eval, m_policyFinder);
          logger.debug("Obtained policies: {}", potentialPolicies.size());
  
          AbstractPolicy policy = matchPolicies(eval, potentialPolicies);
          logger.debug("Matched policies and created abstract policy.");
  
          return policy;
      }
docs: Obtains a policy or policy set of matching policies from the policy
  store. If more than one policy is returned it creates a dynamic policy
  set that contains all the applicable policies.
  
  @param eval
  the Evaluation Context
  @return the Policy/PolicySet that applies to this EvaluationCtx
  @throws TopLevelPolicyException
  @throws PolicyIndexException