class PolicyResource implements CollectionResourceProvider {

    @Override
    public Promise<ResourceResponse, ResourceException> readInstance(Context context, String resourceId,
            ReadRequest request) {
        try {
            Privilege policy = policyStoreProvider.getPolicyStore(context).read(resourceId);
            return newResultPromise(policyResource(policy));
        } catch (EntitlementException ex) {
            DEBUG.error("PolicyResource :: READ : Error reading policy, " + resourceId + ".", ex);
            return resourceErrorHandler.handleError(context, request, ex).asPromise();
        }
    }

    @Inject public  PolicyResource(final PolicyEvaluatorFactory factory,
                          final PolicyRequestFactory requestFactory,
                          final PolicyParser parser,
                          final PolicyStoreProvider provider,
                          final ExceptionMappingHandler<EntitlementException, ResourceException> handler);

}