code: public final Status evaluate(final Metric metric) {
          if (okThresholdList.isEmpty() && warningThresholdList.isEmpty() && criticalThresholdList.isEmpty()) {
              return Status.OK;
          }
  
          // Perform evaluation escalation
          for (Range range : okThresholdList) {
              if (range.isValueInside(metric, prefix)) {
                  return Status.OK;
              }
          }
  
          for (Range range : criticalThresholdList) {
              if (range.isValueInside(metric, prefix)) {
                  return Status.CRITICAL;
              }
          }
  
          for (Range range : warningThresholdList) {
              if (range.isValueInside(metric, prefix)) {
                  return Status.WARNING;
              }
          }
  
          if (!okThresholdList.isEmpty()) {
              return Status.CRITICAL;
          }
  
          return Status.OK;
      }
docs: Evaluates this threshold against the passed in metric. The returned status
  is computed this way:
  <ol>
  <li>If at least one ok range is specified, if the value falls inside one
  of the ok ranges, {@link Status#OK} is returned.
  <li>If at lease one critical range is specified, if the value falls
  inside one of the critical ranges, {@link Status#CRITICAL} is returned.
  <li>If at lease one warning range is specified, if the value falls inside
  one of the warning ranges, {@link Status#WARNING} is returned.
  <li>If neither of the previous match, but at least an OK range has been
  specified, return {@link Status#CRITICAL}.
  <li>Otherwise return {@link Status#OK}
  </ol>
  
  @param value
  The value to be evaluated.
  
  @return The computes status.
  @see it.jnrpe.utils.thresholds.IThreshold#evaluate(Metric)