PolicyEntityMgr.java 文件源码

java
阅读 29 收藏 0 点赞 0 评论 0

项目:osc-core 作者:
/**
 * Verifies if the request contains valid policies supported by security manager available on the OSC.
 * If the request contains one or more invalid policies, throw an exception.
 */
// TODO Larkins: Improve the method not to do the validation
public static Set<Policy> findPoliciesById(EntityManager em, Set<Long> ids, ApplianceManagerConnector mc)
        throws VmidcBrokerValidationException, Exception {
    Set<Policy> policies = new HashSet<>();
    Set<String> invalidPolicies = new HashSet<>();
    for (Long id : ids) {
        CriteriaBuilder cb = em.getCriteriaBuilder();
        CriteriaQuery<Policy> query = cb.createQuery(Policy.class);
        Root<Policy> root = query.from(Policy.class);
        query = query.select(root).where(cb.equal(root.get("id"), id),
                cb.equal(root.join("applianceManagerConnector").get("id"), mc.getId()));
        try {
            Policy policy = em.createQuery(query).getSingleResult();
            policies.add(policy);
        } catch (NoResultException nre) {
            invalidPolicies.add(id.toString());
        }
    }
    if (invalidPolicies.size() > 0) {
        throw new VmidcBrokerValidationException(
                "Invalid Request. Request contains invalid policies: " + String.join(", ", invalidPolicies));
    }
    return policies;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号