code: protected <T extends XmlFieldInstance> String measureWithGenerics(String jsonRecord)
        throws InvalidJsonException {
      changed();
  
      // JsonPathCache<T> cache = new JsonPathCache<>(jsonRecord);
      cache = new JsonPathCache<>(jsonRecord);
  
      List<String> items = new ArrayList<>();
      for (Calculator calculator : getCalculators()) {
        calculator.measure(cache);
        items.add(calculator.getCsv(false, compressionLevel));
      }
  
      return StringUtils.join(items, ",");
    }
docs: The generic version of measure.
  
  The class to pass should define the individual field's representations, so
  it is bound to the schema the record in. The class should be the extension
  of XmlFieldInstance.
  
  @param <T>
  A class defining the internal representation of a field. It should be
  an extension of XmlFieldInstance
  @param jsonRecord
  The JSON record
  @return
  The result of measurements as a CSV string
  @throws InvalidJsonException