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(Version other) {
List<int> versionParts =
version.split(".").map((part) => int.parse(part)).toList();
List<int> otherParts =
other.version.split(".").map((part) => int.parse(part)).toList();
int numberOfParts = max(versionParts.length, otherParts.length);
for (var index = 0; index < numberOfParts; index++) {
int versionPart = index < versionParts.length ? versionParts[index] : 0;
int otherPart = index < otherParts.length ? otherParts[index] : 0;
if (versionPart < otherPart) {
return -1;
}
if (versionPart > otherPart) {
return 1;
}
}
return 0;
}