code: public static HashCode sign(CheckRequest value) {
      Hasher h = Hashing.md5().newHasher();
      Operation o = value.getOperation();
      if (o == null || Strings.isNullOrEmpty(o.getConsumerId())
          || Strings.isNullOrEmpty(o.getOperationName())) {
        throw new IllegalArgumentException("CheckRequest should have a valid operation");
      }
      h.putString(o.getConsumerId(), StandardCharsets.UTF_8);
      h.putChar('\0');
      h.putString(o.getOperationName(), StandardCharsets.UTF_8);
      h.putChar('\0');
      Signing.putLabels(h, o.getLabels());
      for (MetricValueSet mvSet : o.getMetricValueSetsList()) {
        h.putString(mvSet.getMetricName(), StandardCharsets.UTF_8);
        h.putChar('\0');
        for (MetricValue metricValue : mvSet.getMetricValuesList()) {
          MetricValues.putMetricValue(h, metricValue);
        }
      }
      return h.hash();
    }
docs: Obtains the {@code HashCode} for the contents of {@code value}.
  
  @param value a {@code CheckRequest} to be signed
  @return the {@code HashCode} corresponding to {@code value}