@Override
  public ThrottlingRecommendation mergeEnforcementRecommendations(List<QuotaRecommendation> quotaRecommendations) {
    QuotaAction mergedQuotaAction = QuotaAction.ALLOW;
    Map<QuotaName, Float> quotaUsagePercentage = new HashMap<>();
    long retryAfterMs = DEFAULT_RETRY_AFTER_MS;
    for (QuotaRecommendation recommendation : quotaRecommendations) {
      QuotaAction currentQuotaAction = recommendation.getQuotaAction();
      if (recommendation.getQuotaName() == QuotaName.READ_CAPACITY_UNIT
          || recommendation.getQuotaName() == QuotaName.WRITE_CAPACITY_UNIT) {
        currentQuotaAction = quotaConfig.requestThrottlingEnabled ? currentQuotaAction : QuotaAction.ALLOW;
      } else if (recommendation.getQuotaName() == QuotaName.STORAGE_IN_GB) {
        currentQuotaAction = quotaConfig.storageQuotaConfig.shouldThrottle ? currentQuotaAction : QuotaAction.ALLOW;
      }
      mergedQuotaAction = mergeQuotaAction(mergedQuotaAction, currentQuotaAction);
      quotaUsagePercentage.put(recommendation.getQuotaName(), recommendation.getQuotaUsagePercentage());
      retryAfterMs = Math.max(recommendation.getRetryAfterMs(), retryAfterMs);
    }
    QuotaUsageLevel quotaUsageLevel = quotaUsagePercentage.isEmpty() ? DEFAULT_QUOTA_USAGE_LEVEL
        : computeWarningLevel(Collections.max(quotaUsagePercentage.values()));
    return new ThrottlingRecommendation(mergedQuotaAction, quotaUsagePercentage, retryAfterMs, quotaUsageLevel);
  }
Constructor to create a {@link SimpleQuotaRecommendationMergePolicy}.
@param quotaConfig The {@link QuotaConfig}.
ambry-quota/src/main/java/com/github/ambry/quota/SimpleQuotaRecommendationMergePolicy.java