compareFindings static method
The canonical ordering of report findings: path, line, column, ID, severity, message. Findings without a location sort first.
Implementation
static int compareFindings(OkfFinding left, OkfFinding right) {
var comparison =
(left.location?.path ?? '').compareTo(right.location?.path ?? '');
if (comparison != 0) {
return comparison;
}
comparison =
(left.location?.line ?? 0).compareTo(right.location?.line ?? 0);
if (comparison != 0) {
return comparison;
}
comparison =
(left.location?.column ?? 0).compareTo(right.location?.column ?? 0);
if (comparison != 0) {
return comparison;
}
comparison = left.id.value.compareTo(right.id.value);
if (comparison != 0) {
return comparison;
}
comparison = left.severity.index.compareTo(right.severity.index);
return comparison != 0 ? comparison : left.message.compareTo(right.message);
}