in tablestore/src/main/java/com/alicloud/openservices/tablestore/core/protocol/SearchGroupByParser.java [79:120]
private static GroupByDateHistogram toGroupByDateHistogram(String groupByName, ByteString groupByByteString) throws IOException {
Search.GroupByDateHistogram pb = Search.GroupByDateHistogram.parseFrom(groupByByteString);
GroupByDateHistogram groupBy = new GroupByDateHistogram();
groupBy.setGroupByName(groupByName);
if (pb.hasFieldName()) {
groupBy.setFieldName(pb.getFieldName());
}
if (pb.hasInterval()) {
DateTimeValue dateTimeValue = SearchProtocolParser.toDateTimeValue(pb.getInterval());
groupBy.setInterval(dateTimeValue);
}
if (pb.hasMissing()) {
ColumnValue missing = ValueUtil.toColumnValue(SearchVariantType.getValue(pb.getMissing().toByteArray()));
groupBy.setMissing(missing);
}
if (pb.hasOffset()) {
DateTimeValue dateTimeValue = SearchProtocolParser.toDateTimeValue(pb.getOffset());
groupBy.setOffset(dateTimeValue);
}
if (pb.hasSort()) {
groupBy.setGroupBySorters(SearchSortParser.toGroupBySort(pb.getSort()));
}
if (pb.hasMinDocCount()) {
groupBy.setMinDocCount(pb.getMinDocCount());
}
if (pb.hasTimeZone()) {
groupBy.setTimeZone(pb.getTimeZone());
}
if (pb.hasFieldRange()) {
Search.FieldRange fieldRangePb = pb.getFieldRange();
ColumnValue min = ValueUtil.toColumnValue(SearchVariantType.getValue(fieldRangePb.getMin().toByteArray()));
ColumnValue max = ValueUtil.toColumnValue(SearchVariantType.getValue(fieldRangePb.getMax().toByteArray()));
groupBy.setFieldRange(new com.alicloud.openservices.tablestore.model.search.groupby.FieldRange(min, max));
}
if (pb.hasSubGroupBys()) {
groupBy.setSubGroupBys(toGroupBys(pb.getSubGroupBys()));
}
if (pb.hasSubAggs()) {
groupBy.setSubAggregations(SearchAggregationParser.toAggregations(pb.getSubAggs()));
}
return groupBy;
}