code: public final Status evaluate(final Metric value) {
          if (critRange != null && critRange.isValueInside(value)) {
              return Status.CRITICAL;
          }
          if (warnRange != null && warnRange.isValueInside(value)) {
              return Status.WARNING;
          }
          if (okRange != null) {
              if (okRange.isValueInside(value)) {
                  return Status.OK;
              } else {
                  return Status.CRITICAL;
              }
          }
  
          return Status.OK;
      }
docs: Evaluates the metric value against the {@link #okRange},
  {@link #warnRange} and {@link #critRange}.
  
  The followed flow is:
  <ol>
  <li>If a critical range is defined and the value falls inside the
  specified range, a {@link Status#CRITICAL} is returned.
  <li>If a warning range is defined and the value falls inside the
  specified range, a {@link Status#WARNING} is returned.
  <li>If a OK range is defined and the value falls inside the specified
  range, a {@link Status#OK} is returned.
  <li>If the OK range is not specified, a {@link Status#CRITICAL} is
  returned
  <li>{@link Status#OK} is returned
  </ol>
  
  @param value
  The value to be evaluated.
  
  @return the evaluated status.
  
  @see it.jnrpe.utils.thresholds.IThreshold#evaluate(Metric)