public RetentionRule findGlobalRuleByProjectId()

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


  public RetentionRule findGlobalRuleByProjectId(String projectId) {
    Session session = openSession();
    RetentionRule globalDefaultRule = null;
    CriteriaBuilder builder = session.getCriteriaBuilder();
    CriteriaQuery<RetentionRule> criteria = builder.createQuery(RetentionRule.class);
    Root<RetentionRule> root = criteria.from(RetentionRule.class);

    criteria
        .select(root)
        .where(
            builder.equal(root.get("isActive"), true),
            builder.equal(root.get("type"), RetentionRuleType.GLOBAL),
            builder.equal(root.get("projectId"), projectId));

    Query<RetentionRule> query = session.createQuery(criteria);
    List<RetentionRule> result = query.getResultList();

    if (result.isEmpty()) {
      criteria = builder.createQuery(RetentionRule.class);
      root = criteria.from(RetentionRule.class);

      criteria
          .select(root)
          .where(
              builder.equal(root.get("isActive"), true),
              builder.equal(root.get("type"), RetentionRuleType.GLOBAL),
              builder.equal(
                  root.get("projectId"),
                  SdrsApplication.getAppConfigProperty("sts.defaultProjectId")));

      query = session.createQuery(criteria);
      result = query.getResultList();
    }
    if (!result.isEmpty()) {
      globalDefaultRule = result.get(0);
    }
    closeSession(session);
    return globalDefaultRule;
  }