public List findRulesByDataStorageRoot()

in src/main/java/com/google/gcs/sdrs/dao/impl/RetentionRuleDaoImpl.java [216:239]


  public List<RetentionRule> findRulesByDataStorageRoot(
      String projectId,
      String dataStorageRoot,
      RetentionRuleType retentionRuleType,
      Boolean includeDeactivated) {
    Session session = openSession();
    CriteriaBuilder builder = session.getCriteriaBuilder();
    CriteriaQuery<RetentionRule> query = builder.createQuery(RetentionRule.class);
    Root<RetentionRule> root = query.from(RetentionRule.class);

    List<Predicate> predicates = new LinkedList<>();
    predicates.add(builder.equal(root.get("projectId"), projectId));
    predicates.add(builder.equal(root.get("dataStorageRoot"), dataStorageRoot));
    predicates.add(builder.equal(root.get("type"), retentionRuleType));
    if (!includeDeactivated) {
      predicates.add(builder.equal(root.get("isActive"), true));
    }
    Predicate[] predicateArray = new Predicate[predicates.size()];
    predicateArray = predicates.toArray(predicateArray);
    query.select(root).where(predicateArray);
    List<RetentionRule> result = session.createQuery(query).getResultList();
    closeSession(session);
    return result;
  }