예제 #1
0
  private Double getCalculatedBaselineValue(
      int conditionId,
      AlertConditionBaselineCategoryComposite composite,
      String optionStatus,
      Double threshold) {
    int baselineId = composite.getBaselineId();

    if (AlertConditionCacheUtils.isInvalidDouble(threshold)) {
      log.error(
          "Failed to calculate baseline for [conditionId="
              + conditionId
              + ", baselineId="
              + baselineId
              + "]: threshold was null");
    }

    // auto-unboxing of threshold is safe here
    Double baselineValue = 0.0;

    if (optionStatus == null) {
      log.error(
          "Failed to calculate baseline for [conditionId="
              + conditionId
              + ", baselineId="
              + baselineId
              + "]: optionStatus string was null");
    } else if (optionStatus.equals("min")) {
      baselineValue = composite.getMinValue();
    } else if (optionStatus.equals("mean")) {
      baselineValue = composite.getMeanValue();
    } else if (optionStatus.equals("max")) {
      baselineValue = composite.getMaxValue();
    } else {
      log.error(
          "Failed to calculate baseline for [conditionId="
              + conditionId
              + ", baselineId="
              + baselineId
              + "]: unrecognized optionStatus string of '"
              + optionStatus
              + "'");
      return null;
    }

    if (AlertConditionCacheUtils.isInvalidDouble(baselineValue)) {
      log.error(
          "Failed to calculate baseline for [conditionId="
              + conditionId
              + ", baselineId="
              + baselineId
              + "]: optionStatus string was '"
              + optionStatus
              + "', but the corresponding baseline value was null");
    }

    return threshold * baselineValue;
  }