@Override
    public String toString() {
        StringBuilder ret = new StringBuilder();
        ret.append("groupingTransform {\n");
        ret.append("\tlabels {\n");
        for (Map.Entry<Integer, String> entry : labels.entrySet()) {
            ret.append("\t\t").append(entry.getKey()).append(" : ").append(entry.getValue()).append("\n");
        }
        ret.append("\t}\n");
        ret.append("\toffsets {\n");
        for (Map.Entry<Integer, Integer> entry : offsetByTag.entrySet()) {
            ret.append("\t\t").append(entry.getKey()).append(" : ").append(entry.getValue()).append("\n");
        }
        ret.append("\t}\n");
        ret.append("\tmaxes {\n");
        for (Map.Entry<Integer, Integer> entry : maxes.entrySet()) {
            ret.append("\t\t").append(entry.getKey()).append(" : ").append(entry.getValue()).append("\n");
        }
        ret.append("\t}\n");
        ret.append("}");
        return ret.toString();
    }
This class contains enough information about how a {@link com.yahoo.search.grouping.request.GroupingOperation} was
transformed into a list {@link com.yahoo.searchlib.aggregation.Grouping} objects, so that the results of those
queries can be transformed into something that corresponds to the original request.

@author Simon Thoresen Hult
container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingTransform.java