code: public String hashCodeList(List<RecordTemplateSpec.Field> fields) {
      StringBuilder sb = new StringBuilder();
      Iterator<RecordTemplateSpec.Field> iter = fields.iterator();
      while(iter.hasNext()) {
        RecordTemplateSpec.Field field = iter.next();
        Type schemaType = field.getSchemaField().getType().getType();
        sb.append(escapeKeyword(field.getSchemaField().getName()));
        if (iter.hasNext()) sb.append(", ");
      }
      return sb.toString();
    }
docs: Returns Java source code that computes the hashCodes of each of the fields, as a list of
  parameters.
  
  This is the same as {@link #fieldList} except when the fields are Java arrays, in which
  case they are wrapped with a utilty method to hash them correctly.  E.g.
  
  <code>
  intField, stringField, mapField, Arrays.deepHashCode(javaArrayField), recordField
  </code>
  
  @param fields provides the fields to include in the hashcode expression.
  @return a java expression that calculates a hash code.