code: public Map<IGuaranteeTerm, GuaranteeTermEvaluationResult> evaluate(IAgreement agreement,
              Map<IGuaranteeTerm, List<IMonitoringMetric>> metricsMap) {
  
          checkInitialized(false);
          
          Map<IGuaranteeTerm,GuaranteeTermEvaluationResult> result = 
                  new HashMap<IGuaranteeTerm,GuaranteeTermEvaluationResult>();
          
          Date now = new Date();
          for (IGuaranteeTerm term : metricsMap.keySet()) {
  
              List<IMonitoringMetric> metrics = metricsMap.get(term);
              if (metrics.size() > 0) {
                  GuaranteeTermEvaluationResult aux = termEval.evaluate(agreement, term, metrics, now);
                  result.put(term, aux);
              }
          }
  
          return result;
      }
docs: Evaluate if the metrics fulfill the agreement's service levels.
  @param agreement Agreement to evaluate.
  @param metricsMap Contains the list of metrics to check for each guarantee term.
  @return list of violations and compensations detected.