private boolean sortedByName;
private boolean sortedByDate;
private boolean sortedByVersion;
+ private boolean useMeasureValueToSort = true; // only if sortedMetricId is not null
private boolean ascendingSort = true;
public Filter setPath(Integer rootSnapshotId, Integer snapshotId, String snapshotPath, boolean isViewContext) {
return sortedMetricId;
}
- public Filter setSortedMetricId(Integer i) {
+ public boolean useMeasureValueToSort() {
+ return useMeasureValueToSort;
+ }
+
+ public Filter setSortedMetricId(Integer id) {
+ return setSortedMetricId(id, true);
+ }
+
+ public Filter setSortedMetricId(Integer id, boolean useValue) {
unsetSorts();
- this.sortedMetricId = i;
+ this.sortedMetricId = id;
+ this.useMeasureValueToSort = useValue;
return this;
}
this.sortedByName = false;
this.sortedMetricId = null;
this.sortedByVersion = false;
+ this.useMeasureValueToSort = true;
}
public List<MeasureCriterion> getMeasureCriteria() {
if (filter.getSortedMetricId() != null) {
sql.append(", MAX(CASE WHEN pm.metric_id=");
sql.append(filter.getSortedMetricId());
- sql.append(" THEN value ELSE NULL END) AS sortvalue");
+ sql.append(" THEN ");
+ sql.append(filter.useMeasureValueToSort() ? "value" : "text_value");
+ sql.append(" ELSE NULL END) AS sortvalue");
sql.append(" ");
}
for (int index = 0; index < filter.getMeasureCriteria().size(); index++) {
java_filter.setSortedByVersion()
elsif filter.sorted_column.on_metric? && filter.sorted_column.metric
- java_filter.setSortedMetricId(filter.sorted_column.metric.id)
+ metric=filter.sorted_column.metric
+ java_filter.setSortedMetricId(metric.id, metric.numeric?)
end