compareTo method
Compares this object to another object.
Returns a value like a Comparator when comparing this
to other
.
That is, it returns a negative integer if this
is ordered before other
,
a positive integer if this
is ordered after other
,
and zero if this
and other
are ordered together.
The other
argument must be a value that is comparable to this object.
Implementation
@override
int compareTo(dynamic other) {
if (other is int) {
return lesson.compareTo(other);
} else if (other is Substitution) {
var tc = affectedClass, oc = other.affectedClass;
if (tc.length > 1 && !'0123456789'.contains(tc[1])) tc = '0' + tc;
if (oc.length > 1 && !'0123456789'.contains(oc[1])) oc = '0' + oc;
final c = tc.compareTo(oc);
return c != 0 ? c : lesson.compareTo(other.lesson);
} else {
return 0;
}
}